/etc/crond.allow
, et de façon symétrique, on peut mettre dans /etc/crond.deny
la liste des utilisateurs non autorisés.Exemple : seuls jean et toto ont la permission d'utiliser le service crontab
cat /etc/crond.allow
jean toto
Le processus crond est normalement lancé au démarrage.
On peut le lancer ou l'arrêter avec :
systemctl stop cron
systemctl start cron
Il lit toutes les minutes les fichiers présents dans le répertoire /var/spool/cron
ainsi que le fichier /etc/crontab
, pour voir si des tâches doivent être exécutées.
Chaque action de crond ajoute une ligne de message dans le fichier /var/log/cron
, qu'il faut purger de temps en temps … par une commande crontab !
Par défaut si une commande produit un affichage, il est dirigé vers la messagerie.
[-u user] {-l | -r | -e }
crontab -l
affiche le fichier crontab de l'utilisateur
crontab -r
efface ce fichier ; attention aucune demande de confirmation
crontab -l -u jean
root examine le fichier crontab de l'user jean
crontab -e
crée ou édite (pour modification) un fichier temporaire dans /tmp
ouvert dans votre éditeur en ligne de commande par défaut.
Lors de la sauvegarde, le fichier est écrit dans /var/spool/cron/$USER
, où $USER
est le nom de login de l'utilisateur.
/var/spool/cron/crontabs
à lister en root
export EDITOR=/usr/bin/vim
Chaque ligne du fichier contient 6 champs.
Les 5 premières déterminent, indiqués par une étoile, les moments d'exécution de la tâche décrite au 6ème champ.
les 5 premiers, indiqués par des étoiles (*) séparées par des espaces, sont appelés champs temporels
, décrivent la périodicité :
Un champ temporel peut contenir :
Exécution chaque 1er et 15 de chaque mois à minuit :
0 0 1,15 * * <commande>
Provoquer un reboot la machine chaque 1er et 15 du mois à 2h 30 du matin :
30 2 1,15 * * /sbin/shutdown -r
Appeler un script de sauvegarde tous les lundis a 3 h 15 du matin :
15 3 * * 1 /usr/bin/backup
Appeler un script de sauvegarde tous les mardis à 3 h du matin :
0 3 * * 2 /usr/bin/backup
Si on laisse l'étoile des minutes, : * 3 * * 1
le script va se lancer toutes les minutes de l'heure 3…
Merci à l'amicale vigilance du captnfab, le Zorro des redresseur d'erreurs du wiki qui m'a indiqué cela !
Exécution toutes les 15 minutes de la <commande> :
*/15 * * * * <commande>
Exécution toutes les heures passées 15 minutes :
15 * * * * <commande>
Exécution tous les matins du lundi au vendredi à 7 h 30 :
30 7 * * 1-5 <commande>
Exécution tous les quarts d'heure de 15h à 19h du lundi au vendredi seulement en 1ère quinzaine du troisième trimestre :
0,15,30,45 15-19 1-15 7-9 1-5 <commande>
Trouver puis nettoyer le répertoire /tmp des vieux fichiers (non modifiés depuis 31 jours) tous les 1er jour de chaque mois, à 2 heures du matin :
0 2 1 * * find /tmp -atime 31 -exec rm -f {} \;
Faire apparaitre un message dans la GUI d'un utilisateur à une heure précice
50 18 * * * export DISPLAY=localhost:0.0; xhost + | zenity --info --text="Reboot de l'ordinateur dans 10min, penser à faire vos sauvegardes"