Aller à la recherche

CRON Planifier facilement des tâches

Cron est le petit diminutif de crontab, qui signifie "chrono table" ou "table de planification". Cron répond à une problématique d'automatisation des tâches en permettant de lancer des tâches à des fréquences spécifiques ou régulières.

Cron l'automatisation des tâches

Cron se compose d'un démon "crond" et une commande d'édition crontab qui permet à tous les utilisateurs de planifier leurs propres tâches d'automatisation.

Il existe deux manières de faire avec cron la première utilise les répertoires cron.* la seconde consiste à utiliser un crontab.

Utilisation des répertoires

Cette méthode est réservée au super utilisateur car il faut avoir les droits d’écritures sur /etc/cron.*

Il existe quatre répertoires en fonction de la fréquence d’exécution des tâches

  • cron.hourly : une fois par heure
  • cron.daily : une fois par jour
  • cron.weekly : une fois par semaine
  • cron.monthly : une fois par mois

Pour ajouter une tâches à exécuter une fois par jour, il suffit juste de placer un script ayant des droits d’exécution 744, rwxrr dans le répertoire /etc/cron.daily

Utilisation de crontab

Cette méthode peut être utiliséepar tous les utilisateurs, les tables de planification étant stockées dans les dossiers personnels.

Le format d'une ligne est le suivant

Minute  |  Heure  |  Jour du mois  |  Mois  |  Jour de la semaine  |  Commande
  • Minute : représente les minutes de 0 à 59
  • Heure : représente les heures de 0 à 23
  • Jour du mois : représente le numéro du jour du mois de 1 à 31
  • Mois : représente le numéro du mois de 1 à 12 ou le nom du mois en anglais de jan à dec
  • Jour de la semaine : représente le nom du jour 0 pour dimanche, 1 pour lundi... jusqu’à 7 pour à nouveau dimanche.

Il est possible de définir des valeurs intervalles

  • * : représente toutes les valeurs possible
  • 1,2 : ne s’exécutera que si l'unité est égale à 1 ou à 2
  • 2-5 : ne s’exécutera que si l'unité est égale à une valeur comprise entre 2 et 5
  • */2 : s’exécutera toutes les 2 unités ex : 0..2..4..6..8..
  • 5-19/3 : s’exécutera toutes les 3unités compris entre 5 et 19 (5, 8, 11, 14, 17)

Il existe certain raccourci

  • @reboot : qui est exécuté après un redémarrage
  • @yearly ou @annually : une fois par an (1er janvier)
  • @monthly : une fois par mois (1er du mois à minuit)
  • @weekly : une fois par semaine (dimanche à minuit)
  • @daily : une fois par jour ( à minuit)
  • @hourly : une fois par heure

Crontab pour gérer la planification

Lister les tâches déjà planifiées contab -l

Editer les tâches crontab -e

Par défaut l’édition des tables de tache s'effectue grâce à vi.Vous pouvez modifier ce comportement en modifiant la variable d'environnement VISUAL / EDITOR export EDITOR=/usr/bin/nano

Supprimer toutes les tâches crontab -r

Voici un exemple de planification qui s’exécutera toutes les 5 minutes entre 8 et 17 heure du jeudi au mardi (inclus), les 15 premiers jours des mois de janvier à mars et d'octobre à décembre. */5 8-17 1-15 1-3,10-12 0-2,4-6 /home/station/mise_a_jour_client.sh

Voilà, concernant crond, ça sera tout.

La discussion continue ailleurs

URL de rétrolien : https://www.binsp.net/?trackback/16

Fil des commentaires de ce billet

Page top