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:25] smolski [Fonctionnement] |
doc:systeme:crontab [19/05/2020 12:25] debianux [Commande crontab] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
====== CRONTAB ====== | ====== CRONTAB ====== | ||
+ | * Objet : Lancer une tache automatiquement à l'aide de cron | ||
+ | * Niveau requis :{{tag>avisé}} | ||
+ | * Commentaires : //Fonctionnement et syntaxe// | ||
+ | * Suivi : {{tag>}} | ||
+ | * Création par [[user>smolki]] le 13/05/2010 | ||
+ | * Testé par [[user>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 | ||
- | ===== 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> | + | |
- | 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. | + | <code root>service cron start</code> |
- | + | ||
- | Chaque action de crond ajoute une ligne de message dans le fichier ''/var/log/cron'', qu'il faut purger de temps en temps ... par une commande crontab ! | + | |
+ | 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. \\ | ||
+ | Chaque action de crond ajoute une ligne de message dans le fichier ''/var/log/cron'', qu'il faut purger de temps en temps ... par une commande crontab ! \\ | ||
Par défaut si une commande produit un affichage, il est dirigé vers la messagerie. | Par défaut si une commande produit un affichage, il est dirigé vers la messagerie. | ||
Ligne 35: | 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>Sur Stretch, les crontab des user sont dans ''/var/spool/cron/crontabs'' à lister en root</note> | ||
+ | |||
+ | <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 72: | Ligne 83: | ||
==== Exemples ==== | ==== Exemples ==== | ||
- | <file bash /etc/cron.d/bimensuel> | + | Exécution chaque 1er et 15 de chaque mois à minuit : |
- | # exécution chaque 1er et 15 de chaque mois à minuit | + | <file actionscrip crontab>0 0 1,15 * * <commande></file> |
- | 0 0 1,15 * * <commande></file> | + | |
- | <file bash /etc/cron.d/reboot-auto> | + | Provoquer un reboot la machine chaque 1er et 15 du mois à 2h 30 du matin : |
- | # provoquer un reboot la machine chaque 1er et 15 du mois à 2h 30 du matin | + | <file actionscript crontab>30 2 1,15 * * /sbin/shutdown -r</file> |
- | 30 2 1,15 * * /sbin/shutdown -r</file> | + | |
- | <file bash /etc/cron.d/sauvegarde-hebdo> | + | Appeler un script de sauvegarde tous les lundis a 3 h 15 du matin : |
- | # appeler un script de sauvegarde tous les lundis a 3 h 15 du matin | + | <file actionscript crontab>15 3 * * 1 /usr/bin/backup</file> |
- | 15 3 * * 1 /usr/bin/backup</file> | + | |
- | <file bash /etc/cron.d/commande-mn> | + | Appeler un script de sauvegarde tous les mardis à 3 h du matin : |
- | # exécution toutes les 15 minutes de la <commande> | + | <file actionscript crontab>0 3 * * 2 /usr/bin/backup</file> |
- | */15 * * * * <commande></file> | + | Si on laisse l'étoile des minutes, : ''* 3 * * 1'' le script va se lancer toutes les minutes de l'heure 3... \\ |
+ | Merci à l'amicale vigilance du **captnfab**, le Zorro des redresseur d'erreurs du wiki qui m'a indiqué cela ! 8-) | ||
- | <file bash /etc/cron.d/commande-h> | + | Exécution toutes les 15 minutes de la <commande> : |
- | # exécution toutes les heures passées 15 minutes | + | <file actionscript crontab>*/15 * * * * <commande></file> |
- | 15 * * * * <commande></file> | + | |
- | <file bash /etc/cron.d/commande-matin> | + | Exécution toutes les heures passées 15 minutes : |
- | # exécution tous les matins du lundi au vendredi à 7 h 30 | + | <file actionscript crontab>15 * * * * <commande></file> |
- | 30 7 * * 1-5 <commande></file> | + | |
- | <file bash /etc/cron.d/commande-horaire> | + | Exécution tous les matins du lundi au vendredi à 7 h 30 : |
- | # exécution tous les quarts d'heure de 15h à 19h du lundi au vendredi | + | <file actionscript crontab>30 7 * * 1-5 <commande></file> |
- | # seulement en 1ère quinzaine du troisième trimestre | + | |
- | 0,15,30,45 15-19 1-15 7-9 1-5 <commande></file> | + | Exécution tous les quarts d'heure de 15h à 19h du lundi au vendredi seulement en 1ère quinzaine du troisième trimestre : |
+ | <file actionscript crontab>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 | + | <file actionscript crontab>0 2 1 * * find /tmp -atime 31 -exec rm -f {} \;</file> |
- | # 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> | + | Faire apparaitre un message dans la GUI d'un utilisateur à une heure précice |
+ | <file actionscript crontab>50 18 * * * export DISPLAY=localhost:0.0; xhost + | zenity --info --text="Reboot de l'ordinateur dans 10min, penser à faire vos sauvegardes"</file> | ||
+ | ===== Liens vers le forum df ===== | ||
- | ===== Source : ===== | + | * [[https://debian-facile.org/viewtopic.php?id=14414|Crontab - lancer une tache une seule fois]] |
- | * 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 |