Les utilisateurs doivent avoir des droits spécifiques pour créer et gérer des tâches dans leur propre crontab. L’accès est limité aux utilisateurs locaux.
systemctl status cron (enable, start si besoin)
crontab –l : permet d’afficher la liste des actions planifiées.
crontab –r: permet de supprimer toutes les actions planifiées.
crontab –e: permet d’éditer et de modifier les actions planifiées.
syntaxe : minutes heures jour_du_mois mois jour_de_la_semaine (utilisateur) tâche/script/cmd (> log)
attention dimanche = 0 !!
(-) 1-10 Détermine une plage de valeur, ici de 1 à 10
(,) 1,2,3 Spécifie une liste de valeurs, ici 1, 2 et 3
(*) Équivaut à toutes les valeurs
(/) Ignore un nombre donné de valeurs
systemctl retart cron.service (status)
tail -f /var/log/cron.log
verifier fonctionnement script dans fichiers journaux de cron:
cat /var/spool/cron/crontabs/UTILISATEUR
sur Debian 11, ce dernier installe « rsyslog » par défaut. ATTENTION : Debian 12 ne l’installe PLUS ! Donc les Logs de « CRON » NE sont PLUS dans « /var/log/ » !!! ILS SONT DANS » journalctl -u cron.service » Pour les avoir dans « /var/log/ » il faut installé rsyslog au préalable.
Ex :
- 0 19 * * 0 /home/script.sh >/dev/null 2>&1
tous les dimanches à 19h - 00 23 * * * /root/scripts/sauvegarde.sh
lancé à 23h00, tous les jours de chaque mois - */6 » sur le 1er champ correspondrait à une fréquence de 6min.
- 00 */4 * * * /root/scripts/synchronisation-ftp.sh
exécuté toutes les 4 h 00, tous les jours de chaque mois - 00 */1 * * 1 /root/script/script.sh
toutes les heures, uniquement le lundi - 0 * * * * /chemin/vers/mon_script.sh
exécuté à la minute 0 de chaque heure - 0 0 * * * /chemin/vers/mon_script.sh
Exécuter un script tous les jours à minuit - 30 2,14 * * 1-5 root /usr/local/sbin/backup.sh
Exécution 2 fois par jour (2h30 et 14h30) du lundi au vendredi
Ex:
- purger le répertoire /home/anto/tmp tous les lundis à 06h00 du matin :
0 6 * * 1 /usr/bin/rm -rf /home/anto/tmp/* - Rediriger la sortie standard vers un fichier de log (journal).
0 0 * * * /home/anto/scripts/backup.sh >> backup.log - rediriger la sortie standard et les erreurs vers un fichier de log :
0 0 * * * /home/anto/scripts/backup.sh >> backup.log 2>&1
(changer backup.log par /dev/null pour rendre la tâche silencieuse)
Quand on exécute un binaire avec une tâche cron, il est recommandé de préciser le chemin d’accès complet, comme /usr/bin/rm. Obtenir cette information avec whereis :
whereis rm
0 6 * * 1 /usr/bin/rm -rf /home/anto/tmp/*
@reboot : au démarrage.
@hourly : chaque heure.
@daily : chaque jour.
@weekly : chaque semaine.
@monthly : chaque mois.
@yearly : chaque année.
@reboot echo « Le serveur a redémarré le $(date ‘+%Y-%m-%d à %H:%M:%S’) » | mail -s « Alerte reboot du serveur ADDS01 » admin-demo@anto-lab.fr
Recevoir des notifications par email à chaque exécution de la tâche,
MTA (Mail Transfer Agent) comme Postfix
