| Linux-Mandrake: Manuel de référence | ||
|---|---|---|
| Page précédente | Chapitre 12. Les utilitaires en ligne de commande | Page suivante |
crontab est une commande qui vous permet d'exécuter des commandes à des intervalles de temps réguliers, avec l'avantage supplémentaire que vous n'avez pas à être connecté au système et que la sortie de ces commandes vous est envoyée par courrier électronique. Vous pouvez spécifier les intervalles en minutes, en heures, en jours et même en mois. crontab agira différemment en fonction des options :
-l : Affiche votre fichier crontab courant.
-e : Édite votre fichier crontab.
-r : Elimine votre fichier crontab courant.
-u <utilisateur> : Applique les options ci-dessus à l'utilisateur <utilisateur>. Seul root est autorisé à faire cela.
Commençons par éditer un fichier crontab. Si vous tapez crontab -e, vous vous trouverez en face de votre éditeur de texte favori si vous avez initialisé la variable d'environnement EDITOR ou VISUAL, autrement VI sera utilisé. Une ligne dans un fichier crontab est composée de six champs. Les cinq premiers sont les intervalles de temps en minutes, heures, jours dans le mois, mois et jours dans la semaine. Le sixième champ est la commande à exécuter. Les lignes commençant par un # sont considérées comme des commentaires et seront ignorées par crond (le programme en charge d'exécution des fichiers crontab). Voici un exemple de fichier crontab :
![]() | afin de pouvoir imprimer l'extrait qui suit dans une police de caractères lisible, il nous a fallu ventiler les lignes les plus longues. C'est pourquoi certaines portions du texte doivent en réalité n'occuper qu'une seule ligne. Quand vous verrez le caractère \ terminer une ligne, cela signifiera que c'est en réalité la même ligne qui continue. Cette convention fonctionne dans les fichiers de type Makefile et dans le shell, ainsi que dans d'autres cadres. |
# Si vous ne voulez pas recevoir de courrier,
# "décommentez" la ligne suivante
#MAILTO=""
#
# Faire un rapport de toutes les nouvelles images
# à 14h tous les deux jours, en partant de
# l'exemple ci-dessus --- après ceci,
# "retoucher" le fichier "stamp". Le "%" est
# traité comme un retour chariot, cela vous
# permet de mettre plusieurs commandes sur la
# même ligne.
0 14 */2 * * find /shared/images \
-cnewer /shared/images/stamp \
-a -iregex ".*\.jpe?g" \
-a -not -regex \
".*/old/.*"%touch /shared/images/stamp
#
# Jouer une mélodie tous les ans à Noël :)
0 0 25 12 * mpg123 $HOME/musiques/joyeux_noel.mp3
#
# Imprimer la liste des courses tous les mardis
# à 17 heures...
0 17 * * 2 lpr $HOME/liste-courses.txt |
Il y a plusieurs autres moyens de spécifier des intervalles que ceux mentionnés dans l'exemple. Par exemple, vous pouvez spécifier un ensemble de valeurs discrètes séparées par des virgules (1,14,23) ou un intervalle (1-15), ou même combiner les deux (1-10,12-20), optionnellement avec un pas (1-12,20-27/2). Maintenant, il vous reste à trouver des commandes utiles à y mettre :-)
| Page précédente | Début | Page suivante |
| find : rechercher des fichiers en fonction de certains critères | Remonter | at : programmer une commande une seule fois |