logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

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 → ODT PDF Export

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
doc:systeme:crontab [18/09/2013 22:27]
smolski [Fonctionnement]
doc:systeme:crontab [10/03/2022 16:39] (Version actuelle)
Yal [Syntaxe des lignes des tables 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 ===== 
 + 
 +{{/​file-R8f8dee23a289f272b42ba50abbb33892.png}}
  
   * 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 !)
-  * Ces tâches, allant de la simple commande aux scripts complexes, peuvent ainsi être exécutées à heure fixe et même de façon périodique,​ et fait l'​objet de messages de compte-rendu. +  * Ces tâches, allant de la simple commande aux scripts complexes, peuvent ainsi être exécutées à heure fixe et même de façon périodique,​ et font l'​objet de messages de compte-rendu. 
-  * La commande /​usr/​bin/​crontab permet cette programmation. Son usage est en principe ​réservée ​à root. On peut toutefois autoriser certains utilisateurs. Pour cela on en dresse la liste sur des lignes successives dans le fichier ''/​etc/​crond.allow'',​ et de façon symétrique,​ on peut mettre dans ''/​etc/​crond.deny''​ la liste des utilisateurs non autorisés.+  * La commande /​usr/​bin/​crontab permet cette programmation. Son usage est en principe ​réservé ​à root. On peut toutefois autoriser certains utilisateurs. Pour cela on en dresse la liste sur des lignes successives dans le fichier ''/​etc/​crond.allow'',​ et de façon symétrique,​ on peut mettre dans ''/​etc/​crond.deny''​ la liste des utilisateurs non autorisés.
  
 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 31:
  
 On peut le lancer ou l'​arrêter avec : On peut le lancer ou l'​arrêter avec :
-<file root> +<code root>systemctl ​stop cron</code>
-service crond stop</file>+
  
-<file root> +<code root>systemctl ​start cron</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. \\ 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 36: Ligne 45:
 ==== 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 =====
  
 Chaque ligne du fichier contient 6 champs. Chaque ligne du fichier contient 6 champs.
  
-Les 5 premières déterminent,​ indiqués par une étoile les moments d'​exécution de la tâche décrite au 6ème champ.+Les 5 premières déterminent,​ indiqués par une étoileles moments d'​exécution de la tâche décrite au 6ème champ.
  
 les 5 premiers, indiqués par des étoiles (*) séparées par des espaces, ​ sont appelés ''​champs temporels'',​ décrivent la périodicité : les 5 premiers, indiqués par des étoiles (*) séparées par des espaces, ​ sont appelés ''​champs temporels'',​ décrivent la périodicité :
Ligne 73: Ligne 85:
 ==== 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 (frhttp://​fr.wikipedia.org/​wiki/​Crontab
  
doc/systeme/crontab.1379536063.txt.gz · Dernière modification: 18/09/2013 22:27 par smolski

Pied de page des forums

Propulsé par FluxBB