Les tâches cron servent à automatiser les tâches récurrentes. Elles permettent de planifier l’exécution de certains programmes ou scripts pour des heures et des jours de la semaine précis.
Créer un cronjob
Pour créer une nouvelle tâche cron, veuillez ouvrir une session dans votre Control Panel. Vous trouvez le "Cronjob Manager" dans l'aperçu du serveur sous "Avancé".
Message
Si l’exécution de votre tâche cron génère des messages, ceux-ci vous sont envoyés par e-mail.
Vous pouvez entrer l’adresse du destinataire dans le champ « Adresse e-mail ». Si vous ne souhaitez pas recevoir ces messages, veuillez insérer les caractères >/dev/null 2>&1 après votre ordre. Cela permet de bloquer toutes les tâches.
/usr/local/bin/php -f /home/username/bin/exemple.php >/dev/null 2>&1
ou
/home/username/bin/exemple >/dev/null 2>&1
Ordre de tâche cron
Le fichier que vous souhaitez exécuter comme tâche cron doit soit être exécutable, soit être exécuté par un interpréteur.
Fichiersexécutables
Les programmes binaires ou les scripts assortis d’une ligne Shebang peuvent être directement exécutés.
Assurez-vous que le mode fichier le permette : x-Bit doit être coché. Si vous n’êtes pas certain, mettez le mode sur 755 ou 750.
Ligne Shebang
Cette ligne particulière du script indique l’interpréteur autorisé à lire et à exécuter le contenu du script.
Il s’agit toujours de la première ligne de la première colonne. Celle-ci commence par les caractères #!, suivis du chemin d’accès de l’interpréteur.
Une ligne Shebang pour un script PHP sur nos serveurs FreeBSD sera donc de type suivant:
#!/usr/local/bin/php
Autres lignes Shebang:
#!/usr/local/bin/perl
#!/usr/local/bin/python
Démarrer des scripts avec un interpréteur
Pour démarrer un script sans exécuter de ligne Shebang, vous devez l’exécuter avec l’interpréteur correspondant. Attention !
Vous trouverez la majorité des programmes supplémentaires sous FreeBSD Unix, /usr/local/bin/.
Lisez également l’article relatif aux chemins d’accès du système.
Pour un script PHP sous /home/username/bin/exemple.php la commande cron sera de type suivant:
/usr/local/bin/php -f /home/username/bin/exemple.php
Autres lignes de commande :
/usr/local/bin/perl /home/username/bin/beispiel.pl
/usr/local/bin/python /home/username/bin/beispiel.py
Moment de l'exécution
Pour déterminer le moment de l’exécution de la tâche cron, vous devez entrer cinq valeurs temporelles. Le Daemon cron contrôle toutes les minutes si une nouvelle tâche cron doit être exécutée. La commande est exécutée lorsque les cinq valeurs sont d’application.
- Minute
- Entrez la minute à laquelle la tâche cron doit être exécutée (0–59).
- Heure
- Entrez l’heure à laquelle la tâche cron doit être exécutée (0-23).
- Jour
- Entrez le jour du mois auquel la tâche cron doit être exécutée (1-31).
- Mois
- Entrez le mois de l’année auquel la tâche cron doit être exécutée (1-12).
- Jour de semaine
- Entrez le jour de la semaine auquel la tâche cron doit être exécutée (0-7, le dimanche est le 0 et le 7).
Liste
Vous pouvez également entrer plusieurs valeurs, séparées par des virgules. Pour démarrer une tâche à xxh20 et à xxh50, veuillez entrer dans «Minute» «20,50».
Caractère générique
Vous pouvez entrer un caractère générique «*» dans les champs que vous souhaitez ignorer. Si vous souhaitez par exemple exécuter une tâche chaque jour de l’année, vous ne devez pas saisir toute la liste de possibilités sous «Jour», «Mois» et «Jour de la semaine» . Il vous suffit de marquer «*» comme «toujours valide» dans ces champs.
Intervalle
Si vous souhaitez exécuter un script à un intervalle particulier, veuillez le marquer avec «"*/interval"». Ce champ est considéré comme valide lorsque la valeur actuelle est divisible par l’intervalle. Si vous souhaitez qu’une tâche soit exécutée toutes les deux heures, entrez «"*/2"» dans le champ «Heure». Cela vaut également pour 0, 2, 4, 6 heures, etc.
Exemples
Exécution à un moment précis
Vous souhaitez exécuter un script de récapitulatif hebdomadaire tous les samedis soirs, à 23 h 15:
Minute: | 15 |
Heure: | 23 |
Jour: | * |
Jour de semaine: | 6 |
Mois: | * |
Commande:
/home/username/bin/zusammenfassung.pl
Exécution toutes les 5 minutes
Vous offrez à l’utilisateur de votre site Internet de télécharger une photo de lui par e-mail sur le site. Pour ce faire, vous souhaitez contrôler cette boîte de messagerie toutes les 5 minutes pour intégrer les nouvelles photos.
Minute: | */5 |
Heur: | * |
Jour: | * |
Jour de semaine: | * |
Mois: | * |
Commande:
/usr/local/bin/php -f /home/username/bin/checkmail.php
Exécution répétée de nuit
Pour réaliser un court-métrage, vous souhaitez télécharger une photo de votre webcam dans votre ville à intervalles réguliers. Pour ce faire, vous avez écrit une ligne que vous souhaitez exécuter toutes les 20 minutes, entre 20 h et 6 h du matin.
Minute: | */20 |
Heur: | 20-23,0-6 |
Jour: | * |
Jour de semaine: | * |
Mois: | * |
Commande:
/usr/local/bin/wget 'http://www.exmaple.com/webcam.cgi?tilt=-20&yaw=93' -O /home/username/cam-images/`date +\%Y-\%m-\%d`.jpg
Vous pouvez également demander périodiquement une URL sans télécharger le fichier:
/usr/local/bin/wget -q -O /dev/null 'http://www.exmaple.com/cron.php' >/dev/null 2>&1
Ressources complémentaires
Vous trouverez de plus amples informations relatives à l’utilisation des tâches cron sous http://www.howtoforge.de/anleitung/eine-kurze-einfuhrung-in-cron-jobs/ ou dans un livre Unix de confiance.
Pour envoyer une demande d'assistance au support, merci d'utiliser ce formulaire-ci.