cron
commandes cron
sudo service cron restart redémarrer le service cron
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 de supprimer votre fichier crontab
crontab -e permet d'éditer votre fichier crontab. Cela ouvrira l'éditeur de texte standard vi. Tout bon administrateur connait évidement cet outil indispensable, sinon consulter : Utilisation de vi.
dossiers de cron
/etc/crond.daily/ exécution quotidienne (chaque jour à 04h02)
/etc/crond.hourly/ exécution chaque heure (chaque heure + 1 minute)
/etc/crond.weekly/exécution hebdomadaire (le dimanche à 04h22)
/etc/crond.monthly/ exécution mensuelle (le 1er du mois à 04h42)
droit sur cron
cron.allow si existe, seuls les utilisateurs figurant dans ce fichier peuvent créer, modifier, afficher ou supprimer des fichiers crontab. on peut ajouter root
cron.deny Aucun des noms d'utilisateur du fichier cron.deny par défaut ne peut accéder à la commande crontab.
ni cron.allow ni cron.deny si les deux n'existent, les privilèges de superutilisateur sont requis pour exécuter la commande crontab .
syntaxe générale
mm hh jj MMM JJJ tâche
représente les minutes (de 0 à 59) représente l'heure (de 0 à 23) représente le numéro du jour du mois (de 1 à 31) représente l'abréviation du nom du mois (jan, feb, ...) ou bien le numéro du mois (de 1 à 12) représente l'abréviation du nom du jour ou bien le numéro du jour dans la semaine : 0 = dimanche 1=lundi [...] 7=dimanche 0 0 13 * 5 tâche
syntaxe en OU
* à chaque unité (0, 1, 2, 3, 4…)
5,8 les unités 5 et 8
2-5 les unités de 2 à 5 (2, 3, 4, 5)
*/3 toutes les 3 unités (0, 3, 6, 9…)
10-20/3 toutes les 3 unités, entre la dixième et la vingtième (10, 13, 16, 19)
Raccourcis tips 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 Toutes les nuits 0 0 * * *
@hourly Toutes les heures 0 * * * *
exemples
Tous les jours à 23 h 30 : 30 23 * * * df >> /tmp/df.log
Toutes les heures, passées de 5 minutes : 5 * * * * df >> /tmp/df.log
Tous les premiers du mois à 23 h 30 : 30 23 1 * * df >> /tmp/df.log
Tous les lundis à 22 h 28 : 28 22 * * 1 df >> /tmp/df.log
Tous les vendredis et tous les 13 de n'importe quel mois à 11 h 22 : 22 11 13 * 5 df >> /tmp/df.log
Tous les vendredis 13 de n'importe quel mois à 11 h 22 : 22 11 13 * * [ `date '+\%w'` -eq 5 ] && df >> /tmp/df.log
Du 2 au 5 de chaque mois à 10 h 12 : 12 10 2-5 * * df >> /tmp/df.log
Tous les jours pairs du mois à 23 h 59 : 59 23 */2 * * df >> /tmp/df.log
Tous les jours ouvrés à 22 heures : 0 22 * * 1-5 df >> /tmp/df.log
Toutes les 5 minutes : */5 * * * * df >> /tmp/df.log
Tous les derniers jours du mois (la barre oblique inversée devant % est obligatoire en édition de crontab, contrairement à l'exécution manuelle de la commande) : 0 0 28-31 * * [ `/bin/date +\%d` -gt `/bin/date +\%d -d "1 day"` ] && df >> /tmp/df.log
Tous les derniers dimanches du mois :
Première solution : comparer tous les dimanches avec celui de la semaine d'après. 0 0 * * 0 [ `/bin/date +\%d` -gt `/bin/date +\%d -d "7 day"` ] && df >> /tmp/df.log
Deuxième solution : tester la dernière semaine tous les mois. 0 0 25-31 1,3,5,7,8,10,12 0 my-script.sh
0 0 24-30 4,6,9,11 0 my-script.sh
0 0 22-29 2 0 my-script.sh





at
commande at
at permet d'executer une commande dans l'avenir at 14:17 11/15/10
at 14:17
at> [...]
spécificateur de temps
minutes at now +5 minutes
hours(heures) at now +5 hours
days(jours) at now +5 >days
weeks(semaines) at now +5 >days
months(mois) at now +5 >days
years(années) at now +1 years
atq lister les jobs
atrm 13 supprimer le job 13
droit sur at
at.allow si existe, seuls les utilisateurs figurant dans ce fichier peuvent créer, modifier, afficher ou supprimer des fichiers crontab. on peut ajouter root
at.deny Aucun des noms d'utilisateur du fichier at.deny par défaut ne peut accéder à la commande crontab.
fichiers at
/usr/share/doc/at/timespec
/var/spool/cron/atjobs Le répertoire de stockage des travaux; ce devrait être mode 700, démon propriétaire
/var/spool/cron/atspool contient la liste des processus en attentes
/proc/loadavg
/var/run/utmp
/etc/at.allow
/etc/at.deny