Le fichier /etc/crontab contient la liste des travaux périodiques à effectuer -comme, par exemple, la mise à jour des bases de données de locate (voir la section 5.14) et de whatis (voir la section 5.9), les journalisations tournantes (voir la sous-section 22.4.9) et éventuellement la réalisation de tâches de sauvegarde. Si une tâche quelconque doit être effectuée périodiquement, vous pouvez la programmer dans ce fichier. /etc/crontab est lu par le démon crond au démarrage.
Après avoir modifié /etc/crontab, vous devez redémarrer crond avec les commandes /etc/rc.d/init.d/crond restart ou /etc/init.d/crond restart ou /etc/init.d/cron restart.
Le fichier /etc/crontab consiste en une
séquence de lignes simples comprenant la définition du temps en jour/semaine/mois
en vis-à-vis de laquelle une ligne de commande est spécifiée. Chaque
ligne a une forme telle que:
<moment> <utilisateur> <executable>
|
La structure de <moment> comprend respectivement
les minutes, les heures, le jour du mois, le mois et le jour de la
semaine. Au moment prévu, crond exécute
la commande. Voici un exemple:
50 13 2 9 6 root /usr/bin/play /etc/theetone.wav
|
50 13 2 * * root /usr/bin/play /etc/theetone.wav
|
50 13 * * 6 root /usr/bin/play /etc/theetone.wav
|
50 13,14 * * 5,6,7 root /usr/bin/play /etc/theetone.wav
|
*/10 * * * 6 root /usr/bin/play /etc/theetone.wav
|
Observez bien que dans les commandes précédentes, play est exécutée en tant que root.
Ce qui suit est un cas concret de fichier /etc/crontab:
# Environment variables first
SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/ # Time specs
30 20 * * * root /etc/cron-alarm.sh
|
N'oubliez pas d'entrer les trois commandes qui vous permettront, comme ici, d'être averti des trois derniers métros du jour.
Les quatre dernières entrées appellent des scripts ``tout faits''. La commande run-parts est un script simple pour effectuer toutes les commandes listées sous /etc/cron.hourly, /etc/cron.daily, etc. Ainsi, si vous avez un script qui doit être exécuté chaque jour mais pas à un moment précis, vous ne devez pas forcément éditer /etc/crontab: au lieu de cela, placez ce script parmi d'autres dans /etc/cron.<intervalle>.
A titre d'exemple, un répertoire /etc/cron.daily
pourrait contenir:
total 14
drwxr-xr-x 2 root drwr-xr-x 59 root -rwxr-xr-x 1 root -rwxr-xr-x 1 root -rwxr-xr-x 1 root -rwxr-xr-x 1 root -rwxr-xr-x 1 root -rwxr-xr-x 1 root -rwxr-xr-x 1 root |
.
root root root root root root root root root |
.
1024 Sep 2 13:22 . 6144 Aug 31 13:11 .. 140 Aug 13 16:16 backup 51 Jun 16 1999 logrotate 390 Sep 14 1999 makewhatis.cron 459 Mar 25 1999 radiusd.cron.daily 99 Jul 23 23:48 slocate.cron 103 Sep 25 1999 tetex.cron 104 Aug 30 1999 tmpwatch |