Configurar un cron job – PHP

By | 2013/01/23

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”.

ScreenShot156

Ingresaremos mediante el comando “cd etc” y al listar los archivos que contiene mediante “ls” encontraremos un archivo llamado “crontab”

ScreenShot157

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.

Category: php

Leave a Reply

Your email address will not be published. Required fields are marked *

This blog is kept spam free by WP-SpamFree.