Crontab est un programme permettant l’exĂ©cution planifiĂ©e et automatique de tâches. C’est l’Ă©quivalent Linux du “Planificateur de tâches” de Windows.
Il permet de lancer une commande ou un script Ă un moment donnĂ©, que ce soit simplement toutes les 5 minutes ou toutes les 1 heures ou encore tous les jours impaires de la semaine du lundi au vendredi, de 8h Ă 19h… Vous l’avez compris, c’est hautement configurable et c’est un outil que tout Administrateur Systèmes et RĂ©seaux se doit de maĂ®triser !
Informations
Chaque utilisateur dispose de son propre fichier de tâches, ils sont dans /var/spool/cron/crontabs/NomUtilisateur.
Il existe deux façon d’Ă©diter les “cron jobs”, soit en passant par la commande dĂ©diĂ©e, soit en allant directement Ă©diter le fichiers.
Pour le reste, Cron reste un dĂ©mon (daemon) qui peut ĂŞtre stoppĂ©, dĂ©marrĂ© relancĂ©, rechargĂ© etc…
1 2 |
/etc/init.d/cron $1 # $1 = start|stop|status|restart|reload|force-reload |
Commande
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
#Editer crontab avec la commande, ça aura pour effet de prendre en compte les modif directement /usr/bin/crontab [ -u utilisateur ] [ -i ] { -e | -l | -r } -e (Editer le crontab de l'utilisateur donné) -l (Lister les tâches d'un utilisateur donné) -r (Effacer les entrée du crontab) (attention, aucun reverse possible) -i (demander avant de supprimer le crontab) # Editer le cron pour USERNAME nano /var/spool/cron/crontabs/USERNAME # Il faudra alors, faire : /etc/init.d/cron reload #Afficher les entrées log de Cron /bin/grep -w cron /var/log/syslog #Heure de la dernière tâche /bin/ls -lut /etc/init.d/cron |
Utilisation
$1 $2 $3 $4 $5 $6
$1 -> Minutes (*|0-59)
$2 -> Heures (*|0-23)
$3 -> Jour du mois (numéro) (*|1-31)
$4 -> Mois (numéro) (*|1-12)
$5 -> Numéro du jour de la semaine (*|0-6)
$6 -> Commande
On peut aussi utiliser les mots clés suivant :
@hourly = 0 * * * *
@reboot = A chaque démarrage
@daily = 0 0 * * *
@midnight = 0 0 * * *
@weekly = 0 0 * * 0
@yearly = 0 0 1 1 *
@monthly = 0 0 1 * *
Exemple
Tous les exemples sauvegarderont le netstat dans un fichier (/var/log/netstat/$fichier) ou lanceront le script /etc/script/save.sh
How To :
*/X ; Tous les X de “Ă©toile” (eg : */10 * * * donne toutes les 10 minutes)
X-Y/Z ; Dans l’interval X-Y, tous les Z (eg : 7-19/2 est 7,9,11,13,15,17,19)
X,Y,Z ; A X et Y et Z (eg : * 7,12,20 * * * donne 7h, 12h, 20h)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# Toutes les minutes, toutes les heures, tous les jours du moins, tous les mois, tous les jours de la semaine * * * * * COMMANDE # toutes les heures @hourly /bin/netstat -vN > /var/log/netstat/list_`date +%d_%m_%Y_%H_%M`.log 0 * * * * /bin/netstat -vN > /var/log/netstat/list_`date +%d_%m_%Y_%H_%M`.log # Toutes les heures, à la demi (00h30, 1h30, 2h30...) 30 * * * * /bin/netstat -vN > /var/log/netstat/list_`date +%d_%m_%Y_%H_%M`.log # Toutes les 2 heure (00h00, 2h00, 4h00...) 0 */2 * * * /bin/netstat -vN > /var/log/netstat/list_`date +%d_%m_%Y_%H_%M`.log # Tous les jours à 7h15 15 7 * * * /bin/netstat -vN > /var/log/netstat/list_`date +%d_%m_%Y_%H_%M`.log # tous les 15 de chaque mois à 00h00. 0 0 15 * * /bin/netstat -vN > /var/log/netstat/list_`date +%d_%m_%Y_%H_%M`.log # toues les 1er et 15 de tous les mois à 8h30 30 8 1,15 * * /bin/netstat -vN > /var/log/netstat/list_`date +%d_%m_%Y_%H_%M`.log #A 22h, du lundi au vendredi soir 0 22 * * 1-5 /etc/script/save.sh Server59 # toutes les deux heures (heures pairs), de 8 à 20h, du lundi au vendredi 0 8-20/2 * * 1-5 /etc/script/save.sh Server59 # toutes les deux heures (heures impairs), de 7h à 19h, du lundi au vendredi 0 7-19/2 * * 1-5 /etc/script/save.sh Server59 # Toutes les 10 minutes, les samedis et dimanches */10 * * * 0,6 /bin/netstat -vN > /var/log/netstat/list_`date +%d_%m_%Y_%H_%M`.log # Entre 00h00 et 8h00, à la 47ème minute, tous les jours. 47 0-8/2 * * * /etc/script/save.sh Server59 |
Si vous avez des questions ou besoin de périodes précises assez chiantes, laissez un commentaire ;)
Petite dĂ©dicace Ă Flo qui n’a plus aucune excuse pour automatiser les exec de sauvegarde !