Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
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 Prochaine révision Les deux révisions suivantes | ||
doc:systeme:crontab [18/09/2013 22:26] smolski [Fonctionnement] |
doc:systeme:crontab [03/07/2014 00:06] 127.0.0.1 modification externe |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
====== CRONTAB ====== | ====== CRONTAB ====== | ||
+ | * Objet : Lancer une tache automatiquement à l'aide de cron | ||
+ | * Niveau requis : {{tag>avisé}} | ||
+ | * Commentaires : | ||
+ | * À savoir : | ||
+ | * Suivi : {{tag>}} | ||
+ | * Création par [[user>smolki]] 13/05/2010 | ||
+ | * Testé par **Kao** le 06/03/2014 | ||
+ | * Commentaires sur le forum : [[https://debian-facile.org/viewtopic.php?id=2575 | ici]] ((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) | ||
+ | |||
Fonctionnement et syntaxe | Fonctionnement et syntaxe | ||
- | ===== Le service crond ===== | + | ===== Le service cron ===== |
* Il est chargé de faire exécuter par le système toutes tâches (commandes et scripts) définies et planifiées à l'avance (cron vient de chronos, le dieu du temps !) | * Il est chargé de faire exécuter par le système toutes tâches (commandes et scripts) définies et planifiées à l'avance (cron vient de chronos, le dieu du temps !) | ||
Ligne 10: | Ligne 19: | ||
Exemple : seuls jean et toto ont la permission d'utiliser le service crontab | Exemple : seuls jean et toto ont la permission d'utiliser le service crontab | ||
+ | <code user>cat /etc/crond.allow</code> | ||
<file crontab /etc/crond.allow> | <file crontab /etc/crond.allow> | ||
- | # ll cron.allow | ||
jean | jean | ||
toto</file> | toto</file> | ||
Ligne 20: | Ligne 29: | ||
On peut le lancer ou l'arrêter avec : | On peut le lancer ou l'arrêter avec : | ||
- | <file root> | + | <code root>service cron stop</code> |
- | service crond start</file> | + | |
+ | <code root>service cron start</code> | ||
Il lit toutes les minutes les fichiers présents dans le répertoire ''/var/spool/cron'' ainsi que le fichier ''/etc/crontab'', pour voir si des tâches doivent être exécutées. \\ | Il lit toutes les minutes les fichiers présents dans le répertoire ''/var/spool/cron'' ainsi que le fichier ''/etc/crontab'', pour voir si des tâches doivent être exécutées. \\ | ||
Ligne 33: | Ligne 43: | ||
==== Options : ==== | ==== Options : ==== | ||
- | <file user>crontab -l</file> | + | <code user>crontab -l</code> |
affiche le fichier crontab de l'utilisateur | affiche le fichier crontab de l'utilisateur | ||
+ | <note warning><code user>crontab -r</code> | ||
+ | efface ce fichier ; attention aucune demande de confirmation</note> | ||
- | <file user>crontab -r</file> | + | <code user>crontab -l -u jean</code> |
- | efface ce fichier | + | |
- | + | ||
- | <file user>crontab -l -u jean</file> | + | |
root examine le fichier crontab de l'user jean | root examine le fichier crontab de l'user jean | ||
- | <file user>crontab -e</file> | + | <code user>crontab -e</code> |
- | crée ou édite (pour modification) un fichier temporaire dans [[manuel:tmp | /tmp]] ouvert dans votre éditeur en ligne de commande par défaut. | + | crée ou édite (pour modification) un fichier temporaire dans ''/tmp'' ouvert dans votre éditeur en ligne de commande par défaut. |
Lors de la sauvegarde, le fichier est écrit dans ''/var/spool/cron/$USER'', où ''$USER'' est le nom de login de l'utilisateur. | Lors de la sauvegarde, le fichier est écrit dans ''/var/spool/cron/$USER'', où ''$USER'' est le nom de login de l'utilisateur. | ||
+ | |||
+ | <note>Pour éditer ce fichier avec votre éditeur préféré, par exemple vim, il faut éditer la variable EDITOR, à mettre cette ligne dans votre //shell// tel que bashrc, zshrc etc. | ||
+ | <code user>export EDITOR=/usr/bin/vim</code></note> | ||
===== Syntaxe des lignes des tables crontab ===== | ===== Syntaxe des lignes des tables crontab ===== | ||
Ligne 69: | Ligne 81: | ||
==== Exemples ==== | ==== Exemples ==== | ||
+ | Exécution chaque 1er et 15 de chaque mois à minuit: | ||
+ | <code>0 0 1,15 * * <commande></code> | ||
- | <file bash /etc/cron.d/bimensuel> | + | Provoquer un reboot la machine chaque 1er et 15 du mois à 2h 30 du matin: |
- | # exécution chaque 1er et 15 de chaque mois à minuit | + | <code>30 2 1,15 * * /sbin/shutdown -r</code> |
- | 0 0 1,15 * * <commande></file> | + | |
- | <file bash /etc/cron.d/reboot-auto> | + | Appeler un script de sauvegarde tous les lundis a 3 h 15 du matin: |
- | # provoquer un reboot la machine chaque 1er et 15 du mois à 2h 30 du matin | + | <code>15 3 * * 1 /usr/bin/backup</code> |
- | 30 2 1,15 * * /sbin/shutdown -r</file> | + | |
- | <file bash /etc/cron.d/sauvegarde-hebdo> | + | Exécution toutes les 15 minutes de la <commande>: |
- | # appeler un script de sauvegarde tous les lundis a 3 h 15 du matin | + | <code>*/15 * * * * <commande></code> |
- | 15 3 * * 1 /usr/bin/backup</file> | + | |
- | <file bash /etc/cron.d/commande-mn> | + | Exécution toutes les heures passées 15 minutes: |
- | # exécution toutes les 15 minutes de la <commande> | + | <code>15 * * * * <commande></code> |
- | */15 * * * * <commande></file> | + | |
- | <file bash /etc/cron.d/commande-h> | + | Exécution tous les matins du lundi au vendredi à 7 h 30: |
- | # exécution toutes les heures passées 15 minutes | + | <code>30 7 * * 1-5 <commande></code> |
- | 15 * * * * <commande></file> | + | |
- | <file bash /etc/cron.d/commande-matin> | + | Exécution tous les quarts d'heure de 15h à 19h du lundi au vendredi seulement en 1ère quinzaine du troisième trimestre: |
- | # exécution tous les matins du lundi au vendredi à 7 h 30 | + | <code>0,15,30,45 15-19 1-15 7-9 1-5 <commande></code> |
- | 30 7 * * 1-5 <commande></file> | + | |
- | + | ||
- | <file bash /etc/cron.d/commande-horaire> | + | |
- | # exécution tous les quarts d'heure de 15h à 19h du lundi au vendredi | + | |
- | # seulement en 1ère quinzaine du troisième trimestre | + | |
- | 0,15,30,45 15-19 1-15 7-9 1-5 <commande></file> | + | |
| | ||
- | <file bash /etc/cron.d/nettoyage-tmp> | + | Trouver puis nettoyer le répertoire /tmp des vieux fichiers (non modifiés depuis 31 jours) tous les 1er jour de chaque mois, à 2 heures du matin: |
- | # trouver puis nettoyer le répertoire /tmp des vieux fichiers (non modifiés | + | <code>0 2 1 * * find /tmp -atime 31 -exec rm -f {} \;</code> |
- | # depuis 31 jours) tous les 1er jour de chaque mois, à 2 heures du matin | + | |
- | 0 2 1 * * find /tmp -atime 31 -exec rm -f {} \;</file> | + | |
- | + | ||
- | + | ||
- | ===== Source : ===== | + | |
- | * http://www.ac-creteil.fr/reseaux/systemes/linux/cron.html | + | ===== Liens: ===== |
- | Une de mes premières et meilleures références pour l'administration et le réseau en français ! :-) | + | *Article Wikipedia avec de nombreux exemples (fr) http://fr.wikipedia.org/wiki/Crontab |