Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
informatique:linux:crontab [2008/06/23 17:57] benoit |
informatique:linux:crontab [2018/09/06 19:10] (Version actuelle) |
||
---|---|---|---|
Ligne 7: | Ligne 7: | ||
Afin d'éditer la table cron (pour l'utilisateur courant), il suffit d'exécuter la commande suivante : | Afin d'éditer la table cron (pour l'utilisateur courant), il suffit d'exécuter la commande suivante : | ||
crontab -e | crontab -e | ||
- | Cette commande a pour effet de lancer l'éditeur par défaut (en général [[vi (unix)|vi]]) présentant la table actuelle (donc aucune s'il s'agit du premier lancement de crontab). | + | Cette commande a pour effet de lancer l'éditeur par défaut (en général [[vi|vi]]) présentant la table actuelle (donc aucune s'il s'agit du premier lancement de crontab). |
Cette commande ne permet pas de modifier la crontab centralisée (/etc/crontab). | Cette commande ne permet pas de modifier la crontab centralisée (/etc/crontab). | ||
+ | |||
+ | Chaque entrée de la table (chaque ligne) correspond à une tâche à exécuter et est notée de la façon suivante : | ||
+ | |||
+ | mm hh jj MMM JJJ tâche > log | ||
+ | |||
+ | Dans cette syntaxe: | ||
+ | |||
+ | * mm représente les minutes (de 0 à 59) | ||
+ | * hh représente l'heure (de 0 à 23) | ||
+ | * jj représente le numéro du jour du mois (de 1 à 31) | ||
+ | * MMM représente le numéro du mois (de 1 à 12) ou l'abréviation du nom du mois (jan, feb, mar, apr, ...) | ||
+ | * JJJ représente l'abréviation du nom du jour ou le chiffre correspondant au jour de la semaine (0 représente le dimanche, 1 représente le lundi, ...) | ||
+ | * tâche représente la commande ou le script shell à exécuter | ||
+ | * log représente le nom d'un fichier dans lequel stocker le journal des opérations. Si la clause> log n'est pas spécifiée, cron enverra automatiquement un courriel de confirmation. Pour éviter cela il suffit de spécifier > /dev/null | ||
+ | |||
+ | Pour chaque unité de temps (minute/heure/...) les notations sont possibles: | ||
+ | |||
+ | * * : a chaque unité de temps | ||
+ | * 2-5 : les unités de temps (2,3,4,5) | ||
+ | * */3 : toutes les 3 unités de temps (0,3,6,...) | ||
+ | * 5,8 : les unités de temps 5 et 8 | ||
+ | |||
+ | Si sur la même ligne on trouve précisées une unité de temps "numéro du jour du mois" et une unité de temps "jour de la semaine", celles-ci sont considérées par crontab comme cumulatives. | ||
+ | |||
+ | === Exemples === | ||
+ | |||
+ | Imaginons que l'on veuille faire un journal (dans le fichier /tmp/log_df.txt par exemple) automatisé de l'espace disque libre (commande df[1]) à des intervalles de temps précis: | ||
+ | |||
+ | * Tous les jours à 23h30: ''30 23 * * * df >>/tmp/log_df.txt'' | ||
+ | * Toutes les heures, passées de 5 minutes : ''5 * * * * df >>/tmp/log_df.txt'' | ||
+ | * Tous les premiers du mois à 23h30: ''30 23 1 * * df >>/tmp/log_df.txt'' | ||
+ | * Tous les lundis à 22h28: ''28 22 * * 1 df >>/tmp/log_df.txt'' | ||
+ | * Du 2 au 5 de chaque mois à 10h12 : ''12 10 2-5 * * df >>/tmp/log_df.txt'' | ||
+ | * Tous les jours pairs du mois à 23h59 : ''59 23 */2 * * df >>/tmp/log_df.txt'' | ||
+ | * Toutes les 5 minutes : ''*/5 * * * * df >>/tmp/log_df.txt'' | ||
+ | * Tous les premiers dimanches du mois : ''1 2 * * 0 [ `/bin/date +\%d` -lt 8 ] && df >>/tmp/log_df.txt'' |