Muchas veces necesitamos que se ejecute cada cierto tiempo un proceso ya sea para enviar correos, actualizar tablas o simplemente verificaciones de procesos en nuestro sistema o aplicación web. Si estamos trabajando con un servidor Linux podemos fácilmente configurar un PHP para que se ejecute automáticamente cada ‘x’ tiempo.
Primero necesitamos acceder al servidor por medio de la consola ( ya sea remotamente o de manera directa frente al servidor), supongamos que estamos en la carpeta raíz; en ella encontramos un directorio llamado “etc”.
Ingresaremos mediante el comando “cd etc” y al listar los archivos que contiene mediante “ls” encontraremos un archivo llamado “crontab”
Este archivo contiene una serie de comandos debidamente ordenados para ejecutarse automáticamente. Accedemos al archivo mediante un editor de texto, en mi caso “vim” mediante el comando “sudo vim crontab” (solicitará la contraseña del root o administrador); al ver las líneas que nos muestra el archivo, claramente nos muestra diversas columnas que debemos conocer para configurarlo correctamente. Definiremos las columnas de izquierda a derecha:
Minuto: Es el minuto exacto que deseamos se ejecute deacuerdo a la hora del servidor(0-59)
Hora: Hora exacta que deseamos se ejecute según la hora del servidor(0-23)
Día del mes: Día del mes que deseamos se ejecute(0-31)
Mes: Mes que se ejecutará(0-12)
Día de la semana: Día de la semana para ser ejecutado(0-7, donde 0 y 7 representan el día domingo)
Usuario: El usuario que ejecuta el comando.(Debe contar con los permisos necesarios)
Comando: Sentencia que tiene la ruta exacta del archivo PHP a ser ejecutado.
En las columnas de minuto, hora, día del mes, mes, día de la semana se puede utilizar un asterisco(*) para representar que se incluyen “todos” y no un momento específico.
Colocaremos en el comando por ejemplo:
cd/ && /usr/bin/php -f /var/www/cron_a_ejecutar.php
Esto nos indica que el ejecutará el archivo que se encuentra en la ruta var/www/cron_a_ejecutar.php
Un ejemplo para esto sería:
00 7 * * * root cd/ && /usr/bin/php -f /var/www/cron_a_ejecutar.php
Esto ejecutará todos los días a las 7:00 a.m. el archivo php.


Leave a comment