Tâches uniques et planification

De Wiki info-lab.fr
Aller à : Navigation, rechercher

Sommaire

Tâches uniques

  • /etc/init.d/atd daemon qui vérifie à intervalles réguliers si une tâche ponctuelle doit être lancée
# /etc/init.d/atd status                      (variante  # service atd status)

Programmer une tâche unique :

$ at 19:00 26.02.2013
warning: commands will be executed using /bin/sh
at> halt    [CTRL] + [D]
at> <EOT>
job 1 at Tue Feb 26 19:00:00 2013
$

La combinaison de touches [CTRL] + [D] valide la commande et clôture la tâche, dont la date complète est confirmée par la ligne jobs suivi du nombre de tâches en attente.
Le fichier /usr/share/doc/at/timespec contient la liste des formats et mots clés autorisés pour renseigner la date.
atq ou at -l permet de lister les tâches à venir

$ atq            (variante at -l)
1      Tue Feb 26 19:00:00 2013 a utilisateur

atrm permet d'annuler une tâche à venir

$ atrm 1

Tâches planifiées

cron

  • /etc/init.d/cron daemon qui vérifie à intervalles réguliers l'exécution de tâches répétitives
# /etc/init.d/cron status                      (variante  # service cron status) 

CRON fonctionne grâce à une table par utilisateur dans lequel les tâches sont programmées.

$ crontab -l             (liste les tâches de l'utilisateur courant)
$ crontab -e             (éditer la table de l'utilisateur courant, 6 champs à définir)
Minutes (0 à 59)   Heures (0 à 23)   Jour-du-Mois (1 à 31)  Mois (1 à 12)  Jour-Semaine (0 à 7)*  Commande-à-exécuter 

Exemple :

 30   6   7,14,21,28   *   *   rm /tmp/*     (à 06h30, les 7, 14, 21 et 28 de chaque mois, tous les mois, effacement du contenu du répertoire /tmp)

Les 5 premiers champs acceptent soit :

  • Une valeur numérique. Par exemple 30 minutes, ou le 30 du mois. Jour de la semaine : dimanche=0, 1=lundi, 2=mardi, 3=mercredi..., 7=dimanche
  • Une liste de valeurs : 3,9,15,21 heures. 1,2,4 jours de la semaine (lundi, mardi et jeudi).
  • Un intervalle de valeurs : 8-18 heures = chaque heure ouvrable de la journée. 1-5 jours de la semaine = du lundi au vendredi
  • Une astérisque (*) pour désigner toutes les valeurs possibles

CRONTAB inclus aussi une table spécifique au système, /etc/crontab, qui contient l'ensemble des tâches système devant être exécutées. Ces tâches sont des scripts entreposés dans les répertoires :

  • /etc/cron.hourly/ pour les tâches à exécuter chaque heure.
  • /etc/cron.daily/ pour les tâches à exécuter chaque jour.
  • /etc/cron.weekly/ pour les tâches à exécuter chaque semaine.
  • /etc/cron.monthly/ pour les tâches à exécuter chaque mois.
  • /etc/cron.d/ peut aussi contenir des tâches.

Les fichiers /etc/cron.allow contient la liste des utilisateurs pouvant utiliser la commande cron. Le fichier etc/cron.deny fait l'inverse. Ces fichiers peuvent ne pas exister, dans ce cas seul root peut utiliser cron.

anacron

  • /usr/bin/anacron lancé en général au démarrage pour vérifier qu'une tâche planifiée n'a pas pu être exécutée car le système hôte était éteint.

Si une ou des tâches sont en attente, anacron les exécute, sinon il s'arrête. Les tâches particulières d'anacron sont situées dans le fichier /etc/anacrontab.

période d'exécution (jours)    délai en minutes    utilisateur    commande
2      30      www-data    service httpd stop

Tous les 2 jours, 30 minutes après le lancement d'anacron (en général au démarrage), l'utilisateur www-data arrêtera le serveur web.

Outils personnels
Espaces de noms

Variantes
Actions
Navigation
Outils