Un cron o cron job sirve para ejecutar cada X tiempo un archivo que definamos.
Según cPanel:
Los trabajos de cron le permiten automatizar ciertos comandos y scripts en tu sitio. Puedes configurar un comando o script a correr a un tiempo específico cada día, semana, etc. Por ejemplo, puedes poner un trabajo de cron que borre archivos temporales cada semana para que tu espacio de disco no sea usado por esos archivos.
Los usuarios de LiveYeah lo tienen muy fácil para crear un “cron job”.
Para ello (usaremos de ejemplo un archivo llamado cron.php colocado en la carpeta public_html):
- Lo primero es iniciar sesión en el cPanel.
- Vamos al apartado “Cron jobs” en la ficha avanzado (abajo del panel).
- Seleccionamos el nivel standard.
- En comando para correr, tenemos que escribir: “wget http://paginaweb.com/cron.php” (sin comillas, y cambiando paginaweb.com por nuestra página y cron.php por el archivo que queramos (no necesariamente tiene que ser php ni estar en la carpeta raíz.
- Definir la frecuencia con la que será ejecutado.
Ahora ya tenemos el “cron job” definido, ¿y eastá?
No. Cada vez que el cron se ejecuta, queda un archivo totalmente inútil en la raíz de nuestra página (/home/usuario/cron.php.numero).
Por cada vez que se ejecuta, se crea un nuevo archivo. Número es sustituido por un número del archivo.
Ejemplo: el archivo cron.php se ejecuta 10 veces. Los archivos creados serán: cron.php.1, cron.php.2, cron.php.3, cron.php.4, cron.php.5, cron.php.6, cron.php.7, cron.php.8, cron.php.9, cron.php.10.
Si sólo son 10 no pasa nada, el problema es cuando tenemos 2000 archivos inútiles.
Añadiendo este código al cron (si es PHP), cada vez que se ejecute borrará todos los archivos temporales creados usando un bucle foreach y las funciones PHP glob() y unlink():
foreach (glob(“/home/USUARIO/cron.php.*”) as $filename) {
unlink($filename);
}
Lo que hace este código es generar un bucle en el que:
- Busca los archivos que estén en /home/USUARIO/ (usuario es vuestro usuario del cPanel) y que se llamen cron.php.(algo más). En este caso, algo más son números que van del 1 al indeterminado.
- Lo convierte en la variable $filename
- Elimina el archivo recogido en la variable.
De esta forma, da igual que tengamos 1 archivo o 5000, ya que los va a borrar todos.
Tened MUCHO cuidado y especificar bien el nombre del archivo, ya que si os equivocáis o usáis algo muy genérico, como *.* (en vez de cron.php.*) podríais borrar todo el contenido de vuestra carpeta.
LiveYeah, Panel, Tutoriales cPanel, crear, cron, cron jobs, eliminar archivo, glob, php, unlink, wget
Últimos comentarios