cron et la crontabPour éxécuter un programme périodiquement, il
faut indiquer la marche à suivre à cron au moyen
d'une crontab. Si le programme doit afficher quelque chose
à l'écran, cron vous envoie le résultat par
courrier électronique.
Pour éditer votre crontab, utilisez la commande
crontab -e. La crontab se compose d'une série de
lignes de texte. Chaque ligne décrit une tâche à
effectuer et le moment auquel elle doit l'être.
Une ligne se compose de six champs, séparés par des blancs (espaces ou tabulations). Le sixième champ se compose de tout ce qui suit le cinquième blanc; il peut lui-même comporter des blancs. Les champs sont, dans l'ordre:
Quelques exemples:
18 21 * * 1 mailstat $HOME/data/maillog
mygale.linux, le premier et le
16 de chaque mois, à 20 h 20:
20 20 1,16 * * $HOME/bin/nsotpp.sh $HOME/.nsotpp/mygale.linux.faq mygale.linux
atrun toutes les minutes:
* * * * * atrun
cron pour les machines personnelles: ucrondVixie cron, le cron par defaut de la Red Hat et de la
plupart des autres distributions, présente un gros
défaut: une tâche programmée n'est
effectuée que si la machine est allumée au bon
moment. Si ça ne pose guère de problemes pour les
serveurs et les autres machines allumées en permanence, c'est
beaucoup plus gênant dans le cas d'un PC personnel.
Pour résoudre ce problème, vous pouvez remplacer
Vixie cron par ucrond. Vous pouvez en
télécharger un package RPM par exemple à
l'adresse
http://www.chez.com/gomesdv/linux/RPMS/.
Une fois ucrond installé, il vous suffit de rajouter
l'option -D avant une commande quelconque dans votre
crontab pour que la tâche correspondante soit
effectuée au prochain démarrage de la machine si
elle n'a pas pu l'être au moment prévu.
Par exemple, la ligne de ma crontab pour poster la FAQ de
mygale.linux devient:
20 20 1,16 * * -D $HOME/bin/nsotpp.sh $HOME/.nsotpp/mygale.linux.faq mygale.linux
atPour programmer l'éxécution ponctuelle d'un programme,
tapez at date. Différents formats sont possibles pour
la date; reportez-vous à la page de manuel de at pour les
connaître.
Ensuite, au prompt at>, entrez les instructions à
éxécuter. Vous pouvez utiliser plusieurs lignes. Tapez
Quelques exemples:
arnaud@pumpkin:~ > at 01.01.99 00:00
at>echo "Bonne annee!" | mail -s "Joyeuses paques! :-)" aminautes@concar.net
at>
arnaud@pumpkin:~ > at noon
at>cat $HOME/data/reveil.wav > /dev/dsp
at>
où reveil.wav est un fichier son bien choisi :-)La commande atq permet de voir la liste des tâchez
programmées.
at -c numéro de la tâche
affiche à l'écran une tâche programmée, et
atrm numéro supprime une tâche non encore
éxécutée.