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
fcron [Le 11/04/2007, 00:03]
Tartopom
fcron [Le 11/09/2022, 11:06] (Version actuelle)
moths-art Suppression des espaces en fin de ligne (détecté et corrigé via le bot wiki-corrector (https://forum.ubuntu-fr.org/viewtopic.php?id=2067892)
Ligne 1: Ligne 1:
-{{tag>edgy divers brouillon}}+{{tag>Xenial cron}}
  
 ------ ------
- 
  
 ====== Programmer des tâches avec FCRON ====== ====== Programmer des tâches avec FCRON ======
  
 +===== Qu'​est-ce que FCron ? =====
  
-===== Qu'est-ce que FCron ? =====+**FCron** ​est un //daemon// utilisé pour programmer des tâches devant être exécutées à un moment précis ou au contraire périodiquement. ​ Chaque utilisateur a un fichier fcrontab, lui permettant d'​indiquer les actions et à quelles ​ périodes elles devront être exécutées. ​FCron a pour but de remplacer le couple [[Cron]] - [[Anacron]],​ et d'en faire un unique logiciel intégré.
  
-**FCron** est un //daemon// utilisé pour programmer des tâches devant être exécutées à un moment précis ou au contraire périodiquement. ​ Chaque utilisateur a un fichier fcrontab, leur permettant d'​indiquer les actions et à quelles ​ périodes elles devront être exécutées. FCron a pour but de remplacer le couple [[Cron]] - [[Anacron]],​ et d'en faire un unique logiciel intégré. 
  
  
 ===== Avantages de FCron par rapport à Cron et Anacron ===== ===== Avantages de FCron par rapport à Cron et Anacron =====
  
-FCron permet de pallier ​aux défaut ​de Cron et d'​Anacron : contrairement à eux si jamais l'​ordinateur est éteint FCron relance la tâche au démarrage (ce que ne permet pas Cron) et si l'​ordinateur est allumé il la lance (ce que ne permet ​par Anacron).+FCron permet de pallier ​les défauts ​de Cron et d'​Anacron : contrairement à eux si jamais l'​ordinateur est éteint FCron relance la tâche au démarrage (ce que ne permet pas Cron) et si l'​ordinateur est allumé il la lance (ce que ne permet ​pas Anacron).
  
-De plus la syntaxe de FCron, bien que compatible avec celle de Cron et d'​Anacron,​ est bien plus évoluée et ajoute de nouvelles possibilités pour paramétrer le comportement du planificateur de tâches.+De plus la syntaxe de FCron, bien que compatible avec celle de Cron et d'​Anacron,​ est bien plus évoluée et ajoute de nouvelles possibilités pour paramétrer le comportement du planificateur de tâches..
  
  
Ligne 23: Ligne 22:
   * Disposer des [[:​sudo|droits d'​administration]] ;   * Disposer des [[:​sudo|droits d'​administration]] ;
   * Disposer d'une connexion à Internet configurée et activée ;   * Disposer d'une connexion à Internet configurée et activée ;
-  * Avoir activé ​l'​accès aux [[:​depots|dépôts APT]] « universe ».+  * Avoir activé ​désinstallé anacron(?) 
  
  
 ===== Installation ===== ===== Installation =====
 +Compilez le paquet à partir des sources disponibles [[http://​fcron.free.fr/​download.php|ici]]. (une installation de sendmail pourra être nécessaire).
 +
 +===== Utilisation simplifiée (pour les pressés !) =====
 +
 +Ex : pour lancer un script toutes les 10 heures :
  
-Pour installer FCron, il suffit de taper ceci dans un terminal :+  fcrontab -e
  
-<​code>​sudo apt-get install fcron</​code>​+Ecrivez dedans :
  
-Ou d'​utiliser [[:​synaptic|Synaptic]] pour installer le paquet fcron.+  @ 10h /​home/​utilisateur/​script.sh
  
 +Faire CTRL + O pour enregistrer puis CTRL + X pour quitter
  
 ===== Commandes pour FCron ===== ===== Commandes pour FCron =====
  
-Pour éditer le fichier de votre **fcrontab**,​ tapez:+Pour éditer le fichier de votre **fcrontab**,​ tapez :
  
 <​code>​fcrontab -e</​code>​ <​code>​fcrontab -e</​code>​
  
-Pour regarder le contenu de votre **fcrontab**,​ tapez:+Pour regarder le contenu de votre **fcrontab**,​ tapez :
  
 <​code>​fcrontab -l</​code>​ <​code>​fcrontab -l</​code>​
  
-Quand vous sortez de l'​éditeur,​ le nouveau fichier **fcrontab** sera installé. Le fichier ​est stocké ​dans ///​var/​spool/​fcron/​fcrontabs/<​user>​// mais doit seulement être édité par l'​intermédiaire de la commande **fcrontab**.+Quand vous sortez de l'​éditeur,​ le nouveau fichier ​pour **fcron** sera installé. Les instructions générées avec **fcrontab** sont stockées sous la forme de 2 fichiers. Le répertoire d'​accueil des fichiers ​est indiqué ​dans /​etc/​fcron.conf,​ c'est habituellement ​///​var/​spool/​fcron// ​
 +L'un des fichiers est écrit au format texte et il est nommé ​<​user>​.orig (<​user>​ étant le nom de l'​utilisateur qui lance **fcrontab**), ​mais doit seulement être édité par l'​intermédiaire de la commande **fcrontab**. 
 +L'​autre fichier est nommé <​user>​ et n'est pas éditable ; il est réservé à **fcron**.
  
  
-L'​éditeur utilisé pour modifier la fcrontab peut être modifié par la commande:+L'​éditeur utilisé pour modifier la fcrontab peut être modifié par la commande :
 <​code>​sudo update-alternatives --config editor</​code>​ <​code>​sudo update-alternatives --config editor</​code>​
 +ou, provisoirement,​ en modifiant la variable d'​environnement VISUAL, par exemple :
 +<​code>​export VISUAL="​gedit"</​code>​
  
 +L'​éditeur par défaut est nano. Pendant l'​édition avec **fcrontab**,​ nano utilise un fichier temporaire de la forme /​tmp/​wxyz1234. 
 +Il est inutile de se préoccuper de ce fichier temporaire et on peut sauver les modifications sous ce nom, lorsqu'​on quitte **fcrontab**,​ celui-ci génère bien les fichiers comme indiqué ci-dessus suivant /​etc/​fcron.conf .
  
  
 ===== Comment fonctionne FCron ? ===== ===== Comment fonctionne FCron ? =====
  
-La syntaxe ​du frontab ​définit 3 types de ligne d'​exécution. Chacune correspond à une manière de décrire une tâche à exécuter. Il y a ainsi les &​-lignes,​ les %-lignes et les @-lignes. +La syntaxe ​de fcrontab ​définit 3 types de ligne d'​exécution. Chacune correspond à une manière de décrire une tâche à exécuter. Il y a ainsi les &​-lignes,​ les %-lignes et les @-lignes.
- +
- +
- +
- +
- +
  
  
Ligne 71: Ligne 76:
 <​code>&​options min hrs jour-du-mois mois jour-de-la-semaine commande</​code>​ <​code>&​options min hrs jour-du-mois mois jour-de-la-semaine commande</​code>​
  
-Les valeurs permises pour les différents champs "​min",​ "​hrs",​ etc... sont :+Les valeurs permises pour les différents champs "​min",​ "​hrs",​ etc. sont :
  
 ^ Champ               ^ Valeurs permises ​    ^ ^ Champ               ^ Valeurs permises ​    ^
-minute ​             | 0-59                 |+minutes ​             | 0-59                 |
 | heures ​             | 0-23                 | | heures ​             | 0-23                 |
 | jour du mois        | 1-31                 | | jour du mois        | 1-31                 |
Ligne 82: Ligne 87:
 **A noter que pour les jours de la semaine 0 et 7 signifient tous les deux le dimanche.** **A noter que pour les jours de la semaine 0 et 7 signifient tous les deux le dimanche.**
  
-Un champ est toujours renseigné soit par une astérisque « * », qui signifie un intervalle comme « premier-dernier,​ soit un nombre seul, soit une liste.+Un champ est toujours renseigné soit par un astérisque « * », qui signifie un intervalle comme « premier-dernier,​ soit un nombre seul, soit une liste.
  
-Si vous mettez ​une astérisque « * » dans un champ. Il agira comme « premier-dernier ». Par exemple, un « * » dans le champ minute ​signifie toutes les minutes de la minute 0 à la minute 59.+Si vous mettez ​un astérisque « * » dans un champ. Il agira comme « premier-dernier ». Par exemple, un « * » dans le champ minutes ​signifie toutes les minutes de la minute 0 à la minute 59.
  
 Les listes sont des nombres ou des intervalles séparés par des virgules « , ». Par exemple : « 2,5,15,23 ». Les listes sont des nombres ou des intervalles séparés par des virgules « , ». Par exemple : « 2,5,15,23 ».
Ligne 104: Ligne 109:
 # sauvegarder mon travail de la journée toutes les nuits à 03:45 avec une faible priorité, sauf le dimanche, envoyer la sortie par courriel à jim et lancer cette tâche au démarrage si la machine était éteinte à 03:45 # sauvegarder mon travail de la journée toutes les nuits à 03:45 avec une faible priorité, sauf le dimanche, envoyer la sortie par courriel à jim et lancer cette tâche au démarrage si la machine était éteinte à 03:45
 &​nice(10),​mailto(jim),​bootrun 45 03 * * *~0 "save --mon travail"</​code>​ &​nice(10),​mailto(jim),​bootrun 45 03 * * *~0 "save --mon travail"</​code>​
- 
- 
- 
  
  
Ligne 113: Ligne 115:
 Les %-lignes sont les entrées lancées périodiquement (c'est le mode "​Anacron"​ de FCron), leur syntaxe est de la forme : Les %-lignes sont les entrées lancées périodiquement (c'est le mode "​Anacron"​ de FCron), leur syntaxe est de la forme :
  
-<​code>​%motclef options commande</​code>​+<​code>​%motclef,options commande</​code>​
  
 Les mots clefs sont hourly, daily, monthly, weekly, midhourly, middaily, nightly, midmonthly, midweekly, mins, hours, days, mons et dow. Les mots clefs sont hourly, daily, monthly, weekly, midhourly, middaily, nightly, midmonthly, midweekly, mins, hours, days, mons et dow.
Ligne 119: Ligne 121:
 Ces mots-clefs indiquent à fcron de lancer la commande une fois entre le début et la fin de l'​intervalle de temps correspondant. Un intervalle de temps est, par exemple, le temps compris entre lundi 16:20 et mercredi 01:43. Par exemple, le mot-clef weekly indique à fcron de lancer une commande une fois par semaine entre le lundi et le dimanche. Ces mots-clefs indiquent à fcron de lancer la commande une fois entre le début et la fin de l'​intervalle de temps correspondant. Un intervalle de temps est, par exemple, le temps compris entre lundi 16:20 et mercredi 01:43. Par exemple, le mot-clef weekly indique à fcron de lancer une commande une fois par semaine entre le lundi et le dimanche.
  
-**Il y cependant une exception ​concerntant ​les mots clefs mins, hours, days, mons et dow.** Ceux ci lancent une commande une fois durant CHAQUE intervalle de temps spécifié.+**Il y cependant une exception ​concernant ​les mots clefs mins, hours, days, mons et dow.** Ceux-ci lancent une commande une fois durant ​**CHAQUE** intervalle de temps spécifié.
  
-Avec ces mots-clefs, l'​utilisateur doit préciser quand la commande devrait être lancée dans chaque intervalle de temps : +Avec ces mots-clefs, l'​utilisateur doit préciser quand la commande devrait être lancée dans chaque intervalle de temps : 
 + 
 + 
 +^ Mots-clefs ​                                 ^ doit être suivi par les champs ^ 
 +| hourly, midhourly ​                          | minutes ​                       | 
 +| daily, middaily, nightly, weekly, midweekly | minutes et heures ​             | 
 +| monthly, midmonthly ​                        | minutes, heures et jours       |
  
  
  
 === Exemples === === Exemples ===
 +
 +<​code>​%nightly * 21-23,3-5 echo "une entrée nigthly"</​code>​
 +lancera la commande une fois par nuit soit entre 21:00 et 23:59, soit entre 3:00 et 5:59 (elle sera exécutée aussitôt que possible ; pour modifier ce comportement,​ utilisez l'​option random).
 +
 +<​code>​%mins 15 2-4 * * * echo</​code>​
 +lancera echo **tous les jours** à 2:15, 3:15 **ET** 4:15.
 +
 +<​code>​%hours 15 2-4 * * * echo</​code>​
 +lancera echo seulement **une fois** soit à 2:15, soit à 3:15 **OU BIEN** à 4:15.
 +
  
  
Ligne 133: Ligne 151:
 <​code>​@options fréquence commande</​code>​ <​code>​@options fréquence commande</​code>​
  
-où fréquence est une valeur de temps de la forme valeur*multiplicateur+valeur*multiplicateur+...+valeur-en-minutes comme « 12h02 » ou « 3w2d5h1 ». La première signifie « 12 heures et 2 minutes d'​exécution de fcron » tant dis que la seconde signifie « 3 semaines, 2 jours, 5 heures et 1 minute d'​exécution de fcron ». Les multiplicateurs valides sont :+où fréquence est une valeur de temps de la forme valeur*multiplicateur+valeur*multiplicateur+...+valeur-en-minutes comme « 12h02 » ou « 3w2d5h1 ». La première signifie « 12 heures et 2 minutes d'​exécution de fcron » tandis ​que la seconde signifie « 3 semaines, 2 jours, 5 heures et 1 minute d'​exécution de fcron ». Les multiplicateurs valides sont :
 ^ Signification ​  ^ Multiplicateurs ​  ^ ^ Signification ​  ^ Multiplicateurs ​  ^
 | mois     | m | | mois     | m |
Ligne 151: Ligne 169:
  
  
-Ce type d'​entrée ne garantie ​pas une date et heure d'​exécution (vu que la tâche est retardée à chaque démarrage du système par le temps écoulé depuis l'​arrêt du système), mais peut être pratique pour des tâches dépendant du nombre de choses faites par les utilisateurs (par exemple, il vaudrait mieux vérifier le système de fichiers après un certain nombre d'​utilisation par les utilisateurs plutôt que tous les x jours, vu que le système peut être lancé de 1 jour à x jours pendant cet intervalle de x jours).+Ce type d'​entrée ne garantit ​pas une date et heure d'​exécution (vu que la tâche est retardée à chaque démarrage du système par le temps écoulé depuis l'​arrêt du système), mais peut être pratique pour des tâches dépendant du nombre de choses faites par les utilisateurs (par exemple, il vaudrait mieux vérifier le système de fichiers après un certain nombre d'​utilisation par les utilisateurs plutôt que tous les x jours, vu que le système peut être lancé de 1 jour à x jours pendant cet intervalle de x jours). 
 + 
 + 
 + 
  
  
 ===== Autres considérations ===== ===== Autres considérations =====
  
-Les commandes ci-dessus sont stockées dans un fichier **fcrontab** appartenant à votre compte d'​utilisateur et exécutées avec votre niveau des permissions. Si vous voulez exécuter, régulièrement,​ une commande exigeant un plus haut niveau de permission (root), vous devez utiliser le fichier **fcrontab** root (ou racine):+<​note>​Si votre commande doit être lancée graphiquement,​ il est nécessaire de la précéder de "​DISPLAY=:​0.0"</​note>​ 
 + 
 + 
 +Les commandes ci-dessus sont stockées dans un fichier **fcrontab** appartenant à votre compte d'​utilisateur et exécutées avec votre niveau des permissions. Si vous voulez exécuter, régulièrement,​ une commande exigeant un plus haut niveau de permission (root), vous devez utiliser le fichier **fcrontab** root (ou racine) :
  
 <​code>​sudo fcrontab -e</​code>​ <​code>​sudo fcrontab -e</​code>​
  
-Remarque : cette commande édite directement le fichier // /var/spool/cron/​fcrontabs/<​utilisateur>//​ (avec ici root comme utilisateur).+Remarque : cette commande édite directement le fichier // /var/spool/fcron/<​utilisateur>//​ (avec ici root comme utilisateur).
  
-Selon les commandes à exécuter, vous devrez changer la variable //PATH// des utilisateurs ayant les droits //root// en mettant la ligne suivante au dessus de leurs fichiers **fcrontab**:​+Selon les commandes à exécuter, vous devrez changer la variable //PATH// des utilisateurs ayant les droits //root// en mettant la ligne suivante au dessus de leurs fichiers **fcrontab** :
  
 <​code>​PATH=/​usr/​sbin:/​usr/​bin:/​sbin:/​bin</​code>​ <​code>​PATH=/​usr/​sbin:/​usr/​bin:/​sbin:/​bin</​code>​
  
-Il est important de vérifier que vos travaux dans **fcron** fonctionnent comme prévu. Une méthode pour faire un test est de paramétrer le travail dans la **fcrontab** pour qu'il se fasse quelques minutes plus tard et de vérifier les résultats avant de mettre, la synchronisation de cette tache, à la bonne heure. Vous pouvez également trouver utile de mettre les résultats des commandes dans un fichier texte qui notent les succès ou les échec, par exemple:+Il est important de vérifier que vos travaux dans **fcron** fonctionnent comme prévu. Une méthode pour faire un test est de paramétrer le travail dans la **fcrontab** pour qu'il se fasse quelques minutes plus tard et de vérifier les résultats avant de mettre, la synchronisation de cette tâche, à la bonne heure. Vous pouvez également trouver utile de mettre les résultats des commandes dans un fichier texte qui notent les succès ou les échecs, par exemple :
  
 <​code>​echo "​Sauvegarde de nuit: $(date)"​ >>/​tmp/​mybackup.log</​code>​ <​code>​echo "​Sauvegarde de nuit: $(date)"​ >>/​tmp/​mybackup.log</​code>​
  
-Pour plus d'​information,​ regardez les pages du //man// pour **fcron** et **fcrontab** (le //man// est détaillé sur [[console:ligne_de_commande|les commandes basiques]]).+Pour plus d'​information,​ regardez les pages du //man// pour **fcron** et **fcrontab** (le //man// est détaillé sur [[:tutoriel:​console_ligne_de_commande|les commandes basiques]]).
  
  
Ligne 179: Ligne 204:
   * [[http://​fcron.free.fr/​|Site officiel]] (en)   * [[http://​fcron.free.fr/​|Site officiel]] (en)
   * [[http://​fcron.free.fr/​doc/​fr/​|Documentation française]] (fr)   * [[http://​fcron.free.fr/​doc/​fr/​|Documentation française]] (fr)
-  * [[http://​fr.wikipedia.org/​wiki/​Fcron|L'​article fcron de Wikipedia]] (fr) +  * [[https://​fr.wikipedia.org/​wiki/​Fcron|L'​article fcron de Wikipedia]] (fr) 
-  ​* ​[[http://wiki.archlinuxfr.org/index.php/Cron_anacron_fcron|Article sur les planificateurs ​de tâches]] (fr)+  
 +// Cet article reprend en partie ​[[https://fr.wikipedia.org/wiki/Fcron|L'​article fcron]] ​de Wikipedia et [[:​cron|l'​article cron]] de cette documentation.//​
  
------- +===== Liens ===== 
-// Cet article reprend en partie ​[[http://​fr.wikipedia.org/​wiki/​Fcron|L'​article fcron]] de Wikipedia, ​[[http://​wiki.archlinuxfr.org/​index.php/​Cron_anacron_fcron|l'​article sur les planificateurs de tâches]] d'​archlinuxfr//​ et [[:​cron|l'​article cron]] de cette documentation.+  ​* ​[[:cron]] : planifier/​programmer des tâches 
 +  * [[:Anacron]] : planificateur de commande « anachronique » 
 +  * [[incron]] : effectuer une action, commande(s),​ scripts, etc, en cas de modifications de fichiers ou de répertoires donnés
  
- --- //​[[utilisateurs:​tartopom|Tartopom]] Le 10/04/2007, à  23:15//+----
  
-//​Contributeurs : //+//​Contributeurs : 
 +  [[utilisateurs:​tartopom|Tartopom]] Le 10/04/2007, à  23:15, [[utilisateurs:​chamblard|Chamblard]] Le 10/​12/​2015 
 +//
  • fcron.1176242599.txt.gz
  • Dernière modification: Le 18/04/2011, 14:45
  • (modification externe)