Es habitual que ejecutemos manualmente de manera periódica un script, ya sea para enviar un mailing, para actualizar el stockaje, para alguna sincronización… sea cual sea el motivo, la automatización de esta tarea sería aun mas interesante si la hiciese nuestro servidor (que él si que tiene buena memoria y no se va a olvidar de hacerlo -y sin quejarse) sin tener que pulsar ni un solo botoncito.
Con esto, si ya el script nos quitó una gran carga de trabajo, tener que olvidarnos de ejecutar de forma manual ese script ya es perfecto.
Parto de la base de que tenemos nuestra web en un servidor que corre bajo Linux.
Nos posicionamos en /var/spool/cron/
Cron. Cron es un servicio que nos permite definir una lista de tareas que queremos automatizar para que nuestro sistema Linux las ejecute sin necesidad de teclear los comandos.
Wget. Comando mediante el cual vamos a ejecutar una página web, en nuestro caso el script.
Una vez posicionados en esa ubicación, veremos que existen una serie de archivos que coinciden con el nombre de los distintos usuarios de nuestro sistema. Pasaremos de esos archivos y lo que haremos sera crear nuestro propio cron, al cual llamaremos como nosotros queramos. En este caso yo llamare a mi archivo mi_cron
Para ello escribiremos > mi_cron y a continuación escribiremos en su intererior con el comando nano mi_cron lo siguiente:
#ejecuta el script llamado script_prueba.php cada 5 minutos
*/5 * * * * /usr/bin/wget -q -O /dev/null http://www.josearagon.es/script_prueba.php > /dev/null
#ejecuta el script llamado script_prueba.php que se encuentra en un directorio (llamado script) protegido con contraseña todos los dias a las 12:20
20 12 * * * /usr/bin/wget -q -O /dev/null http://usuario:pass@www.josearagon.es/script/script_prueba.php > /dev/null
Una vez hemos guardado el archivo que habíamos llamado mi_cron tan solo nos queda ejecutar el comando crontab mi_cron, mediante el cual informamos a nuestro sistema que el archivo en el que se encuentran las tareas programadas o automatizadas para nuestro usuario es el archivo mi_cron
Para indicarle a nuestro fichero mi_cron la fecha y hora de su ejecución debemos saber que la estructura es la siguiente (de izquierda a derecha):
* minuto (0 – 59)
* hora (0 – 23)
* día del mes (1 – 31)
* mes (1 – 12)
* día de la semana (0 – 6)
todo esto seguido del comando a ejecutar.