Cómo ejecutar PHP Script como usuario normal con Cron


Cron es una utilidad poderosa 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 usar para programar trabajos como comandos o scripts de shell para realizar copias de seguridad, programar actualizaciones y muchas 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 dado 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 o ejecute un script PHP a través de un programador de tareas cron en Linux.

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

  • Minute – accepts values between 0-59.
  • Hour – accepts values between 0-23.
  • Day of Month – stores values between 1-31.
  • Month of the year – stores values between 1-12 or Jan-Dec, you can use first three letters of each month’s name i.e Jan or Jun.
  • Day of week – holds values between 0-6 or Sun-Sat, Here also you can use first three letters of each day’s name i.e Sun or Wed.
  • Command – command to be executed.

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

$ crontab -e

Y para ver todas las entradas de 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 admita un archivo adicional para especificar el nombre de usuario:

$ sudo vi /etc/crontab

Y programe su script PHP para que se ejecute de esta manera, 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 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 debe ocurrir el trabajo. La primera figura muestra minutos : en este escenario, cada diez minuto. Las otras figuras muestran, respectivamente, hora, día, mes y día de la semana.

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

  1. Using Shell Scripting to Automate Linux System Maintenance Tasks
  2. 12 Useful PHP Commandline Usage Every Linux User Must Know
  3. How to Run PHP Codes in Linux Terminal
  4. 30 Useful Linux Commands for System Administrators

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