Planifier

De Diablotins.org.


Planifier les tâches administratives... et les autres.
Image:brush.png
Pour administrer vos machines, vous allez devoir planifier certaines tâches essentielles: mises à jours, sauvegardes, nettoyages etc.


Sous UNIX, un démon est assigné à ce travail: cron(8).




Sommaire

Cron

Ce service consulte régulièrement un planning décrit sous forme de tableau, appelé crontab(5), pour déterminer qui doit exécuter quelle tâche et à quel moment.

Crontab système

Elle est placée dans /etc/crontab.
Cinq colonnes décrivent une échelle de temps:

Minutes Heures Jour Mois Jour semaine
intervalle intervalle intervalle intervalle intervalle

Sous chaque colonne, précisez une plage, par valeur unique ou une fréquence:

x           valeur unique: x1 
x1,x2,x3    liste, valeurs x1, x2 et x3
x1-x10      intervalle de x1 à x10 inclus
/x          Fréquence, tous les x. 
*           tous

Les intervalles sont:

Minutes Heures Jour Mois Jour semaine
0-59 0-23 1-31 1-12 0-7
0-59 0-23 1-31 1-12 Sun-Sat

La fin de la ligne est exécutée tel quel par le shell.

Crontabs privées

Elles sont identiques à la précédente, hormis l'absence de la colonne utilisateur.
Pour activer des tâches pour un utilisateur en particulier, décrivez un planning, par exemple, un fichier crontab situé dans l'espace utilisateur.
Intégrez cette table à cron, à l'aide de la commande crontab(1):

crontab ~/crontab

ou

crontab -u david /usr/home/david/crontab

Vérifiez:

crontab -u david -l

Periodic


Sous FreeBSD, certaines tâches sont déjà configurées dans periodic(8) et classées par fréquence.
Activez le script periodic dans /etc/crontab:

1       19      *       *       *       root    periodic daily
15      19      *       *       6       root    periodic weekly
30      19      1       *       *       root    periodic monthly
  1. tous les jours à 19h01, les scripts «daily» seront consultés.
  2. tous les samedis, à 19h15, les scripts «weekly» seront consultés.
  3. tous les premiers jours du mois, à 19h30, les scripts «monthly» seront consultés.

Ces scripts sont activés ou désactivés par défaut dans /etc/defaults/periodic.conf. Pour modifier cette configuration, ajoutez des entrées dans /etc/periodic.conf:

daily_clean_tmps_enable="YES"
daily_clean_msgs_enable="YES"
daily_clean_preserve_enable="YES"

Exemple

Devinez le fonctionnement de ce script, placé dans l'espace d'un utilisateur nommé «Charles»:

/usr/home/Charles/crontab
5       18      18       6       *       IciLondres.sh

Activez:

crontab -u Charles ~/crontab

Et ce script, 'IciLondres.sh':

#!/bin/sh
cat /usr/home/Charles/ATousLesFrançais.txt

En savoir plus

Projets :