Cómo ejecutar un script PHP como usuario normal con Cron


Cron es una poderosa utilidad para la programación de trabajos basada en el tiempo en sistemas operativos similares a Unix, incluido Linux. Se ejecuta como un demonio y se puede utilizar para programar trabajos como comandos o scripts de shell para realizar copias de seguridad, programar actualizaciones y muchos más, que se ejecutan de forma periódica y automática en segundo plano en momentos, fechas o intervalos específicos.

Una limitación de cron es que asume que un sistema se ejecutará para siempre; por lo que es adecuado para servidores que no sean equipos de escritorio. Además, puede programar una tarea en un momento determinado o posterior, utilizando los comandos "at" o "batch": pero la tarea solo se ejecuta una vez (no se repite).

En este artículo, explicaremos cómo permitir que un usuario normal del sistema ejecute un script PHP a través de un programador de trabajos cron en Linux.

Puede programar trabajos usando el programa crontab (CRON TABle). Cada usuario puede tener su propio archivo crontab que se compone de seis campos para definir un trabajo:

  • Minuto: acepta valores entre 0 y 59.
  • Hora: acepta valores entre 0 y 23.
  • Día del mes: almacena valores entre 1 y 31.
  • Mes del año: almacena valores entre 1 y 12 o de enero a diciembre. Puede usar las primeras tres letras del nombre de cada mes, es decir, enero o junio.
  • Día de la semana: contiene valores entre 0-6 o de domingo a sábado. Aquí también puede usar las primeras tres letras del nombre de cada día, es decir, domingo o miércoles.
  • Comando: comando que se ejecutará.

Para crear o editar entradas en su propio archivo crontab, escriba:

$ crontab -e

Y para ver todas sus entradas crontab, escriba este comando (que simplemente imprimirá el archivo crontab en la salida estándar):

$ crontab -l

Sin embargo, si usted es un administrador del sistema y desea ejecutar un script PHP como otro usuario, debe programarlo en el archivo/etc/crontab o en el archivo crontab del usuario raíz que admite un archivo adicional para especificar el nombre de usuario:

$ sudo vi /etc/crontab

Y programe su script PHP para que se ejecute así, especifique el nombre de usuario después de la sección de tiempo.

0 0 * * * tecmint /usr/bin/php -f /var/www/test_site/cronjobs/backup.php

La entrada anterior ejecuta el script /var/www/test_site/cronjobs/backup.php todos los días a la medianoche como usuario tecmint.

Si desea ejecutar el script anterior automáticamente cada diez minutos, agregue la siguiente entrada al archivo crontab.

*/10 * * * * tecmint /usr/bin/php -f /var/www/test_site/cronjobs/backup.php

En el ejemplo anterior, el */10 * * * * representa cuándo debería realizarse el trabajo. La primera figura muestra minutos; en este escenario, cada "diez" minuto. Las otras cifras muestran, respectivamente, hora, día, mes y día de la semana.

También le puede interesar leer los siguientes artículos relacionados.

  1. Uso de secuencias de comandos de Shell para automatizar las tareas de mantenimiento del sistema Linux
  2. 12 usos útiles de la línea de comandos PHP que todo usuario de Linux debe conocer
  3. Cómo ejecutar códigos PHP en una terminal Linux
  4. 30 comandos útiles de Linux para administradores de sistemas

¡Eso es todo! Esperamos que este artículo le resulte útil. Si tiene alguna pregunta o idea adicional para compartir sobre este tema, utilice el formulario de comentarios a continuación.