Planification des tâches avec crontab

Avant de que je me décide à utiliser GNU/Linux je lisais souvent sur les forums généralistes que je fréquentais à l’époque qu’il y avait pas plus compliqué comme système d’exploitation mais surtout qu’il fallait lui consacrer beaucoup de temps au quotidien ! Pas besoin de vous dire que tout s’est révélé archi-faux, la gestion et planification des tâches avec cron en est la parfait preuve.

En effet, cron est un utilitaire qui permet la planification et l’exécution de tâches (programmes, scripts) à un moment spécifié. Pour utiliser cron il suffit d’éditer les fichier crontab se trouvant dans le répertoire /etc (/etc/cron.daily, /etc/cron.hourly, /etc/cron.weekly, /etc/cron.monthly), mais on va pas les éditer directement, c’est fortement déconseillé, mais on va plutôt utiliser la commande crontab -e. Chaque entrée se compose de 5 champs de date et heure suivi de la tâche à exécuter :

mm hh jj MMM JJJ tâche

Où :

  • mm correspond au minutes (0 à 59) ;
  • hh représente l’heure (0 à 23)
  • jj  représente le numéro du jour du mois (1 à 31) :
  • MMM représente le numéro du mois de l’année (1 à 12) ou l’abréviation du nom du mois : jan, feb, mar … (en anglais);
  • JJJ représente le jour de la semaine (0 à 6 où 0 correspond au dimanche) ;
  • tâche répresente la commande ou le script qu’on veut exécuter.

Supposant que on a un script backup.py, qui se trouve dans notre /home, et qui nous permet d’effectuer une sauvegarde d’un répertoire et qu’on veut automatiser son exécution quotidiennement à une heure précise, minuit trente par exemple, dans un terminal taper la commande suivante :

$ crontab -e

Comme expliqué tout ci-dessus, cette commande permet d’éditer les tâches cron via <troll> le super méga puissant éditeur Vim :) </troll>, notre nouvelle entrée va ressembler à ça :

30 0 * * * ~/backup.py

Note : notre script doit avoir les droits d’exécution.

Un autre exemple, vous souhaitez que votre ordinateur vous réveille chaque matin à 6h du lundi au vendredi en jouant un de vos morceaux de musique préféré par exemple :

* 6 * * 1-5 /usr/bin/mpg123 ~/Musiques/heavy_fuel.ogg

Si cool tout ça mais comment faire pour avoir une liste des tâches programmées ou en supprimer mes entrées crontab si je veux ? fastoche :

  • crontab -l : pour avoir une liste  des tâches planifiées ;
  • crontab -r : supprimera toutes les entrée crontab.

Note : dans ce billet je pars du principe que le démon cron est lancé automatiquement lors du démarrage de votre ordinateur pour vérifier son statut tapez cette ligne :

# /etc/init.d/cron status

Sachez enfin qu’il existe des interfaces graphique pour crontab si vous êtes allergique à la ligne de commande comme gCrontab ou gnome-schedule.

Have fun ;)

Vus : 937
Publié par crowd42 : 370