next up previous contents Next: La commande at. Up: crond et atd. Previous: crond et atd.   Table des matières  

38.1 Le fichier de configuration /etc/crontab.

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>


<moment> est une manière de représenter le moment auquel la commande doit être exécutée, <utilisateur> indique sous quel utilisateur la commande est exécutée et <executable> est la commande qui doit être mise en oeuvre.

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


où sera joué (play) theetone.wav le samedi 2 septembre de chaque année à 13:50:00 alors que:

50 13 2 * * root /usr/bin/play /etc/theetone.wav


jouera le fichier theetone.wav le 2ème jour de chaque mois à 13:50:00. Par ailleurs, la ligne:

50 13 * * 6 root /usr/bin/play /etc/theetone.wav


jouera (play) le fichier theetone.wav chaque samedi à 13:50:00. Notez aussi que la ligne:

50 13,14 * * 5,6,7 root /usr/bin/play /etc/theetone.wav


jouera le fichier theetone.wav à 13:50:00 et 14:50:00 chaque vendredi, samedi et dimanche alors que:

*/10 * * * 6 root /usr/bin/play /etc/theetone.wav


jouera le fichier theetone.wav, toutes les 10 minutes lors de chaque samedi. La notation / dans la description du moment est particulière et signifie ``par pas de''.

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 
35 19 * * * root /etc/cron-alarm.sh 
58 18 * * * root /etc/cron-alarm.sh 
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.monthly 



Notez que le caractère # est utilisé pour les commentaires comme d'habitude. crond permet aussi de spécifier des variables d'environnement sous lesquels les commandes sont exécutées.

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 


Il est conseillé de vérifier chacun des scripts de manière à savoir ce que le système fait.


next up previous contents Next: La commande at. Up: crond et atd. Previous: crond et atd.   Table des matières  
1-01-2006