Zoeken op website

PHP-script uitvoeren als normale gebruiker met Cron


Cron is een krachtig hulpprogramma voor tijdgebaseerde planning van taken in Unix-achtige besturingssystemen, waaronder Linux. Het draait als een daemon en kan worden gebruikt voor het plannen van taken zoals opdrachten of shell-scripts om back-ups uit te voeren, updates te plannen en nog veel meer, die periodiek en automatisch op de achtergrond worden uitgevoerd op specifieke tijden, datums of intervallen.

Eén beperking van cron is dat het ervan uitgaat dat een systeem voor altijd zal blijven draaien; het is dus geschikt voor andere servers dan desktopcomputers. Bovendien kunt u een taak op een bepaald of later tijdstip plannen met behulp van de commando's 'at' of 'batch': maar de taak wordt slechts één keer uitgevoerd (deze wordt niet herhaald).

Voorgesteld leesvoer: Taken plannen met Anacron op Linux

In dit artikel leggen we uit hoe je een normale systeemgebruiker een PHP-script kunt laten uitvoeren of uitvoeren via een cron-jobplanner in Linux.

U kunt taken plannen met het programma crontab (CRON TABLE). Elke gebruiker kan zijn eigen crontabbestand hebben, dat bestaat uit zes velden voor het definiëren van een taak:

  • Minuut – accepteert waarden tussen 0-59.
  • Uur – accepteert waarden tussen 0-23.
  • Dag van de maand – slaat waarden op tussen 1-31.
  • Maand van het jaar – slaat waarden op tussen 1-12 of Jan-Dec. Je kunt de eerste drie letters van de naam van elke maand gebruiken, bijvoorbeeld Jan of Jun.
  • Dag van de week – bevat waarden tussen 0-6 of zondag-za. Ook hier kunt u de eerste drie letters van de naam van elke dag gebruiken, bijvoorbeeld zondag of woensdag.
  • Commando – commando dat moet worden uitgevoerd.

Om vermeldingen in uw eigen crontabbestand te maken of te bewerken, typt u:

crontab -e

En om al uw crontab-items te bekijken, typt u deze opdracht (die eenvoudigweg het crontab-bestand naar std-uitvoer afdrukt):

crontab -l

Als u echter een systeembeheerder bent en een PHP-script als een andere gebruiker wilt uitvoeren, moet u dit plannen in het /etc/crontab-bestand of het crontab-bestand van de rootgebruiker, dat een extra bestand ondersteunt voor het specificeren de gebruikersnaam:

sudo vi /etc/crontab

En plan dat uw PHP-script op deze manier wordt uitgevoerd, specificeer de gebruikersnaam na het timinggedeelte.

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

Het bovenstaande item voert het script /var/www/test_site/cronjobs/backup.php elke dag om middernacht uit als gebruiker tecmint.

Als u het bovenstaande script elke tien minuten automatisch wilt uitvoeren, voeg dan het volgende item toe aan het crontabbestand.

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

In het bovenstaande voorbeeld geeft de */10 * * * * aan wanneer de taak moet plaatsvinden. Het eerste cijfer toont minuten – in dit scenario elke "tien" minuut. De overige cijfers tonen respectievelijk uur, dag, maand en dag van de week.

Misschien vindt u het ook leuk om de volgende gerelateerde artikelen te lezen.

  1. Shell-scripting gebruiken om Linux-systeemonderhoudstaken te automatiseren
  2. 12 Handig PHP-opdrachtregelgebruik dat elke Linux-gebruiker moet kennen
  3. PHP-codes uitvoeren in Linux Terminal
  4. 30 Handige Linux-opdrachten voor systeembeheerders

Dat is alles! We hopen dat u dit artikel nuttig vindt. Als u vragen of extra ideeën heeft over dit onderwerp, gebruik dan het onderstaande opmerkingenformulier.