Crontab est un paquet installé sur les systèmes Linux permettant d’automatiser des scripts facilement. Crontab est très flexible et autorise des intervalles, des horaires fixes ou une périodicité pour l’exécution d’un script en une ligne.
Le but est de comprendre comment automatiser une tache sur un système Linux, plusieurs moyens sont possibles mais le plus simple est certainement l’utilisation de cron, un service qui fonctionne en tache de fond sur un système linux.
Quand utiliser Cron ?
L’automatisation d’un script est utile pour n’importe quelle tache qui peut s’avérer fastidieuse et qui doit être exécutée de manière périodique :
- les mises à jour
- un redémarrage du système ou d’un service
- un nettoyage de base
- une manipulation de fichier
- …
En gros, n’importe quel script qui est fonctionnel et exécutable. Votre script ou votre commande doit comporter seulement des chemins absolues.
Utilisation de cron
Les commandes de base de Cron
Lister les taches de cron
Pour lister les taches déjà en cours :
crontab -l
Editer une nouvelle tache
Pour éditer le fichier cron :
crontab -e
Démarrage, arrêt et redémarrage
Cron est démon qui fonctionne en tache de fond, pour le démarrer, l’arrêter ou le redémarrer :
/etc/init.d/cron start | restart | stop
La configuration de cron
Pour configurer une nouvelle tache ou en supprimer une, il faut ouvrir cron en édition crontab -e puis ajouter une ligne pour sa tache qui se présente sous cette forme :
"minute" "heure" "jour du mois" "mois" "jour de la semaine" "utilisateur" "action"
La signification (il ne doit pas y avoir les ‘ »‘, chaque paramètre est séparé d’un espace) :
[table id=7 /]
Pour chacune des unités de temps :
- *, représente toutes les unités de temps
- 5, représente une unité de temps précise, ici 5
- 5-10, représente toutes les unités de temps comprise entre les deux valeurs, ici 5,6,7,8,9,10
- 5,10, représente une liste des unité de temps précise, ici 5 et 10
- */5, définit un intervalle précis, ici toutes les 5 unité de temps, c’est-à-dire 0,5,10,15,20 etc
Exemple de configuration avec cron
Voici quelques exemples pour illustrer (à chaque fois nous venons copier l’espace disque disponible dans un fichier en /tmp/df.log:
[table id=8 /]
Il y a d’autres exemples sur Wikipédia.