crond
cron
vient de chronos, le dieu du temps !)
/usr/bin/crontab
permet cette programmation. Son usage est en principe réservée à root
.
On peut toutefois autoriser certains utilisateurs.
Pour cela on en dresse la liste sur des lignes successives dans le fichier /etc/crond.allow
, et de façon symétrique,
on peut mettre dans /etc/crond.deny
la liste des utilisateurs non autorisés.# ll cron.allow jean toto
crond
est normalement lancé au démarrage./etc/rc.d/init.d/crond
/var/spool/cron
(et aussi le fichier
/etc/crontab
, pour voir si des tâches doivent être exécutées.
crond
ajoute une ligne de message dans le fichier /var/log/cron
, qu'il faut purger
de temps en temps ... par une commande crontab !
crontab [-u user] {-l | -r | -e }
Options :
crontab -l
affiche le fichier crontab de l'utilisateur
crontab -r
efface ce fichier
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 vi
/var/spool/cron/$USER
, où $USER
est le nom de login de l'utilisateur.
crontab
Chaque ligne du fichier contient 6 champs, les 5 premières déterminent les moments d'exécution de la tâche décrite au 6ème champ.
# exécution chaque 1er et 15 de chaque mois à minuit 0 0 1,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 15 à 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 {} \; envoyer les messages "Je suis encore au travail !" tous les quarts d'heure à partir de 17 h à tous les utilisateurs actuellement connectés, et le message "Bonjour chef !" à root tous les jours ouvrables à 10 h 0 10 * * 1-5 write root %Bonjour chef ! */15 17-20 * * 1-5 wall %Je suis encore au travail !
crond
est-il actif ? (ntsysv
ou ps aux|grep cron
)
toto
ajoute toutes les 5 minutes un message "Bonjour" suivi de la date, dans le fichier /tmp/bonjour.txt
/etc/crontab
# run-parts 01 * * * * root run-parts /etc/cron.hourly 02 4 * * * root run-parts /etc/cron.daily 22 4 * * 0 root run-parts /etc/cron.weekly 42 4 1 * * root run-parts /etc/cron.monthlyFichier
/usr/bin/run-parts
#!/bin/bash # run-parts - concept taken from Debian ............ for i in $1/* ; do [ -d $i ] && continue if [ -x $i ]; then $i fi done exit 0