80 lines
2.8 KiB
Markdown
80 lines
2.8 KiB
Markdown
# 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 <user> `: é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
|
|
```
|
|
|