Planifier des tâches dans FreeBSD avec Cron
Cron est l’équivalent sous Unix du task scheduler de Windows et permet d’exécuter des tâches selon un planning défini.
L’utilitaire cron est un daemon (service) qui tourne en background. Il se réveille chaque minute pour vérifier les fichiers crontabs contenant les actions planifiées.
Ces fichiers crontab sont créés par l’utilitaire crontab et peuvent être de 2 types:
- crontab système:
Créé en éditant le fichier /etc/crontab et en y ajoutant une entrée du type#minute hour mday month wday who command * * * * * root /root/myscript.sh -options
- crontab utilisateur:
Créé avec la commande crontab -e (les fichiers sont stockés dans /var/cron/tabs/ mais il est déconseillé de les éditer manuellement)#minute hour mday month wday command * * * * * /root/myscript.sh -options >> /dev/null 2>&1
Le morceau de code » >> /dev/null 2>&1″ permet de rediriger la sortie standard du script vers /dev/null et de rediriger la sortie des erreurs (2) vers la sortie standard (1). En clair, ça lance la commande sans rien afficher dans le terminal.
Lorsque cron se réveille, il recharge automatiquement en mémoire le contenu des crontab pour prendre en compte les modifications. Dans le cas où un crontab doit être exécuté, l’utilitaire vérifie si le user qui fait tourner la commande n’est pas désactivé ou locké, puis il vérifie si celui-ci est autorisé ou non à utiliser crontab en parcourant les fichiers /var/cron/allow et /var/cron/deny .
Voici un tableau des valeurs autorisées pour les paramètres:
Champ Description Valeurs autorisées
minute minutes 0-59
hour heures 0-23
mday jour du mois 1-31
month mois 1-12
wday jour de la semaine 0-7 (dimanche = 0 ou 7) ou le jour en anglais
user utilisateur spécifier le user (uniquement pour cron système)
Les paramètres doivent suivre une syntaxe bien spécifique:
- * : à chaque occurence (par exemple: toutes les minutes)
- */25 : à chaque multiple (par exemple: à chaque fois que les minutes sont un multiple de 25)
- 5-10 : intervalle (par exemple:entre 5h et 10h, toutes les heures)
- 5-10/3 : intervalle restreind (par exemple: entre 5 et 10h à chaque fois que les heures sont un multiple de 3, donc à 6h et à 9h)
- 6,9 : combinaison (par exemple: à 6h et à 9h)
Si vous préférez simplifier au maximum les paramètres, vous pouvez utiliser une alternative et remplacer les asterisques par l’un des raccourcis suivant, qui exécutera le crontab selon le planning prédéfini, pour autant que la charge processeur soit basse
Raccourci | Description |
---|---|
@reboot | exécuté une fois, au démarrage |
@yearly | exécuté au nouvel an, "0 0 1 1 *" |
@annually | (idem que @yearly) |
@monthly | exécuté au début du mois, "0 0 1 * *" |
@weekly | exécuté au début de la semaine, "0 0 * * 0" |
@daily | exécuté chaque jour à minuit, "0 0 * * *" |
@midnight | (idem que @daily) |
@hourly | exécuté chaque heure, "0 * * * *" |
Pour plus d’informations, comme l’emplacement des fichiers créés et les paramètres additionnels, vous pouvez consulter les manuels
$ man cron $ man crontab
Tags: freebsd
Trackback from your site.