La planification des tâches avec Linux


Cron:

Cron est un programme disponible sur les systèmes Linux permettant de planifier des taches régulières. Il est en effet intéressant que les tâches habituelles soient réalisées automatiquement par le système plutôt que d’avoir à les lancer manuellement en tant qu’utilisateur. Cron est un démon, il tourne donc en tâche de fond du système.

Crontab:

Crontab permet de programmer des tâches régulières sur votre ordinateur et tourne avec l’application cron.

Paramètres de crontab:

m h dom mon dow commande

m pour minute valeur comprise entre 0 et 59
h pour heure valeur comprise entre 0 et 23
dom pour jour du mois valeur comprise entre 1 et 31
mon pour mois valeur comprise entre 1 et 12
dow pour jour de la semaine valeur comprise entre 0 et 7, le dimanche étant 0 ou 7, le lundi 1, etc …
commande pour la commande ou la suite de commande à exécuter.

Il existe aussi des caractères spéciaux:

* : s’il est utilisé dans l’un des 5 premiers champs, indique que la commande doit être effectuée tout le temps
/ : permet de spécifier une répétition
– : permet de définir une plage
, : permet de définir plusieurs valeurs

Tableau des raccourcis.

Raccourcis Description Équivalent
@reboot Au démarrage Aucun
@yearly Tous les ans 0 0 1 1 *
@annually Tous les ans 0 0 1 1 *
@monthly Tous les mois 0 0 1 * *
@weekly Toutes les semaines 0 0 * * 0
@daily Tous les jours 0 0 * * *
@midnight Tous les jours 0 0 * * *
@hourly Toutes les heures 0 * * * *

 

Les commandes:

crontab -l
Permet de lister toutes les actions crontab de votre utilisateur.

crontab -u toto -l
Permet à l’administrateur de lister toutes les actions crontab de l’utilisateur toto.

crontab -r
Permet lui de supprimer votre fichier crontab.

crontab -e
Permet d’éditer votre fichier crontab.

Exemples:

*/10 * * * * commande permet d’exécuter une commande toutes les dix minutes.

0 23 * * 2-5 commande permet d’exécuter une commande tous les jours de la semaine du mardi ou vendredi à 23h.

17 19 1,15 * * commande veut dire les premier et quinzième du mois à 19h17

23 0-16/2 * * * commande signifie toutes les 2 heures à la 23ième minute, entre minuit et 16 heures.

Voici un lien avec plus d’explication si besoins :http://manpagesfr.free.fr/man/man5/crontab.5.html

Démarrer / Arrêter / Redémarrer le service cron:

Redémarrage de Cron
sudo /etc/init.d/cron restart

Arrêt
sudo /etc/init.d/cron stop

Démarrage
sudo /etc/init.d/cron start

Remarque suivant la distribution de linux l’éditeur peut être VIM ou Nano.