Com executar l'script PHP com a usuari normal amb Cron


Cron és una potent utilitat per a la programació de treballs basada en el temps en sistemes operatius semblants a Unix, inclòs Linux. S'executa com a dimoni i es pot utilitzar per programar tasques com ara ordres o scripts d'intèrpret d'ordres per realitzar còpies de seguretat, programar actualitzacions i moltes més, que s'executen periòdicament i automàticament en segon pla a hores, dates o intervals concrets.

Una limitació de cron és que suposa que un sistema funcionarà per sempre; per tant, és adequat per a servidors que no siguin màquines d'escriptori. A més, podeu programar una tasca a una hora determinada o posterior, utilitzant les ordres a o per lots: però la tasca només s'executa una vegada (no es repeteix).

En aquest article, explicarem com permetre que un usuari del sistema normal executi o executi un script PHP mitjançant un programador de treballs cron a Linux.

Podeu programar treballs mitjançant el programa crontab (CRON TABLE). Cada usuari pot tenir el seu propi fitxer crontab que està format per sis camps per definir una feina:

  • Minut: accepta valors entre 0 i 59.
  • Hora: accepta valors entre 0 i 23.
  • Dia del mes: emmagatzema valors entre l'1 i el 31.
  • Mes de l'any: emmagatzema els valors entre l'1 i el 12 o gener-desembre; podeu utilitzar les tres primeres lletres del nom de cada mes, és a dir, gener o juny.
  • Dia de la setmana: conté valors entre 0 i 6 o Dg-Ds. Aquí també podeu utilitzar les tres primeres lletres del nom de cada dia, és a dir, Dg o Dj.
  • Ordre: ordre que cal executar.

Per crear o editar entrades al vostre propi fitxer crontab, escriviu:

$ crontab -e

I per veure totes les entrades de crontab, escriviu aquesta ordre (que simplement imprimirà el fitxer crontab a la sortida std):

$ crontab -l

Tanmateix, si sou administrador del sistema i voleu executar un script PHP com un altre usuari, haureu de programar-lo al fitxer /etc/crontab o al fitxer crontab de l'usuari root que admet un fitxer addicional per especificar el nom d'usuari:

$ sudo vi /etc/crontab

I programeu el vostre script PHP perquè s'executi així, especifiqueu el nom d'usuari després de la secció de temps.

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

L'entrada anterior executa l'script /var/www/test_site/cronjobs/backup.php cada dia a mitjanit com a usuari tecmint.

Si voleu executar l'script anterior automàticament cada deu minuts, afegiu l'entrada següent al fitxer crontab.

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

A l'exemple anterior, el */10 * * * * representa quan s'ha de fer la feina. La primera figura mostra els minuts, en aquest escenari, cada \deu\ minut. Les altres xifres mostren, respectivament, l'hora, el dia, el mes i el dia de la setmana.

També us agradaria llegir aquests articles relacionats següents.

  1. Ús de Shell Scripting per automatitzar les tasques de manteniment del sistema Linux
  2. 12 ús útil de la línia d'ordres de PHP que tots els usuaris de Linux han de conèixer
  3. Com executar codis PHP al terminal Linux
  4. 30 ordres útils de Linux per a administradors de sistemes

Això és tot! Esperem que aquest article us sigui útil. Si teniu cap pregunta o idees addicionals per compartir sobre aquest tema, utilitzeu el formulari de comentaris a continuació.