Recherche de site Web

Comment exécuter un script PHP en tant qu'utilisateur normal avec Cron


Cron est un utilitaire puissant pour la planification temporelle des tâches dans les systèmes d'exploitation de type Unix, notamment Linux. Il s'exécute comme un démon et peut être utilisé pour planifier des tâches telles que des commandes ou des scripts shell pour effectuer des sauvegardes, planifier des mises à jour et bien d'autres, qui s'exécutent périodiquement et automatiquement en arrière-plan à des heures, des dates ou des intervalles spécifiques.

Une des limites de cron est qu'il suppose qu'un système fonctionnera pour toujours ; il convient donc aux serveurs autres que les ordinateurs de bureau. De plus, vous pouvez planifier une tâche à une heure donnée ou ultérieurement, en utilisant les commandes « at » ou « batch » : mais la tâche n'est exécutée qu'une seule fois (elle n'est pas répétée).

Lecture suggérée : Comment planifier des tâches à l'aide d'Anacron sous Linux

Dans cet article, nous expliquerons comment permettre à un utilisateur système normal d'exécuter ou d'exécuter un script PHP via un planificateur de tâches cron sous Linux.

Vous pouvez planifier des tâches à l'aide du programme crontab (CRON TAble). Chaque utilisateur peut avoir son propre fichier crontab composé de six champs permettant de définir un job :

  • Minute – accepte les valeurs comprises entre 0 et 59.
  • Heure – accepte les valeurs comprises entre 0 et 23.
  • Jour du mois : stocke les valeurs comprises entre 1 et 31.
  • Mois de l'année : stocke les valeurs entre 1 et 12 ou entre janvier et décembre. Vous pouvez utiliser les trois premières lettres du nom de chaque mois, c'est-à-dire janvier ou juin.
  • Jour de la semaine – contient des valeurs comprises entre 0 et 6 ou Sun-Sat. Ici également, vous pouvez utiliser les trois premières lettres du nom de chaque jour, c'est-à-dire Sun ou Wed.
  • Command – commande à exécuter.

Pour créer ou modifier des entrées dans votre propre fichier crontab, tapez :

crontab -e

Et pour afficher toutes vos entrées crontab, tapez cette commande (qui imprimera simplement le fichier crontab sur la sortie std) :

crontab -l

Cependant, si vous êtes un administrateur système et que vous souhaitez exécuter un script PHP en tant qu'autre utilisateur, vous devez le planifier dans le fichier /etc/crontab ou dans le fichier crontab de l'utilisateur root qui prend en charge un fichier supplémentaire pour spécifier l'identifiant:

sudo vi /etc/crontab

Et planifiez l'exécution de votre script PHP comme ceci, spécifiez le nom d'utilisateur après la section de timing.

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

L'entrée ci-dessus exécute le script /var/www/test_site/cronjobs/backup.php tous les jours à minuit en tant qu'utilisateur tecmint.

Si vous souhaitez exécuter automatiquement le script ci-dessus toutes les dix minutes, ajoutez l'entrée suivante au fichier crontab.

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

Dans l'exemple ci-dessus, le */10 * * * * représente le moment où le travail doit avoir lieu. Le premier chiffre montre les minutes – dans ce scénario, toutes les "dix" minutes. Les autres chiffres indiquent respectivement l'heure, le jour, le mois et le jour de la semaine.

Vous aimerez peut-être également lire les articles connexes suivants.

  1. Utilisation des scripts Shell pour automatiser les tâches de maintenance du système Linux
  2. 12 Utilisation utile de la ligne de commande PHP que tout utilisateur Linux doit connaître
  3. Comment exécuter des codes PHP dans un terminal Linux
  4. 30 commandes Linux utiles pour les administrateurs système

C'est tout! Nous espérons que cet article vous sera utile. Si vous avez des questions ou des idées supplémentaires à partager concernant ce sujet, utilisez le formulaire de commentaires ci-dessous.