# cron ```bash * * * * * command(s) ^ ^ ^ ^ ^ | | | | | allowed values | | | | | ------- | | | | ----- Day of week (0 - 7) (Sunday=0 or 7) | | | ------- Month (1 - 12) | | --------- Day of month (1 - 31) | ----------- Hour (0 - 23) ------------- Minute (0 - 59) ``` https://crontab.guru | | | | | -------- | -------------------- | ----------------------------------------------- | | @yearly | 0 0 1 1 * | Tous les 1er janvier à midi | | @monthly | 0 0 1 * * | Tous les 1er du mois à minuit | | @weekly | 0 0 * * 0 | Tous les dimanches à minuit | | @daily | 0 0 * * * | Tous les jours à minuit | | @hourly | 0 * * * * | Toutes les heures | | @reboot | | Au démarrage de l'ordinateur | | | 0 15 * * 1-5 command | Tous les jours à 15h du lundi au vendredi | | | 00 08-16 * * * | Toutes les jours, toutes les heures de 8h à 16h | | | 0 7 1-7 * 1 | Le 1er lundi de chaque mois à 7h | | | 15 9 1,15 * * | Le 1er et le 15 du mois à 9h15 | | | */15 * * * * | Toutes les 15 mn | #### La commande crontab: - `crontab -e`: édite ou crée le fichier crontab. - `crontab -l`: affiche le fichier crontab. - `crontab -r`: supprime le fichier crontab (directement). - `crontab -i`: supprime le fichier crontab (prompt). - `crontab -u `: édite le fichier crontab d'un autre utilisateur. Le fichier crontab s'ouvre dans l'éditeur spécifié par la variable d'environnement EDITOR (ou VISUAL). https://linuxize.com/post/scheduling-cron-jobs-with-crontab/ #### Voir si le cron est exécuté: On ouvre la crontab avec `# crontab -e`: ```bash # On redirige la sortie et les erreurs du scripts vers les logs avec 2>&1 | logger -t up_pihole # Ici le cron est exécuté toutes les 2 minutes. */2 * * * * bash /root/update_pihole.sh 2>&1 | logger -t up_pihole ``` On cherche les sorties du cron dans les logs: ```bash # journalctl -f | grep 'up_pihole\|cron' ``` ```bash Aug 25 16:40:01 PiHole1 CRON[438003]: (root) CMD (/usr/bin/env > /root/cron-env) Aug 25 16:40:01 PiHole1 CRON[438004]: (root) CMD (bash /root/update_pihole.sh 2>&1 | logger -t up_pihole) Aug 25 16:40:01 PiHole1 CRON[438001]: pam_unix(cron:session): session closed for user root Aug 25 16:40:02 PiHole1 up_pihole[438007]: Find Pi-hole update on PiHole1 Aug 25 16:40:02 PiHole1 up_pihole[438007]: Aug 25 16:40:02 PiHole1 up_pihole[438007]: Pi-hole Current Last Aug 25 16:40:02 PiHole1 up_pihole[438007]: Pi-hole v5.18.3 v5.18.3 ```