Différences
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 | ||
anacron [Le 02/07/2009, 02:52] 213.95.41.13 |
anacron [Le 19/08/2024, 06:46] (Version actuelle) 86.202.209.181 [Différence avec Cron] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | {{tag>cron fcron gnome-schedule }} | + | {{tag>Focal Bionic Xenial sauvegarde synchronisation}} |
+ | ---- | ||
+ | ====== Anacron ====== | ||
- | ====== anacron (en anglais anachronistic command scheduler ou planificateur de commande « anachronique ») ====== | + | Anacron est utilisé pour exécuter des commandes, scripts ou programmes périodiquement, avec une fréquence spécifiée en jours.\\ |
+ | ===== Différence avec Cron ===== | ||
+ | Cron est plutôt utilisé pour des machines à fonctionnement permanent (comme les serveurs).\\ | ||
+ | [[Anacron]] est plutôt utilisé pour des machines à fonctionnement discontinu (comme les PC). | ||
- | ===== A quoi ça sert ? ===== | + | Cron a plus d'options qu'Anacron. Comme ce dernier, il peut lancer une tâche à un intervalle déterminé : par exemple chaque 5e jour de la semaine, chaque heure, ou chaque mois. Contrairement à Anacron, il peut aussi lancer une tâche à un moment pré-déterminé (« le 14 janvier 2018 à 15h 30 »). Limite par rapport à Anacron : si la machine n'est pas allumée, la tâche n'est pas lancée, et ne le sera jamais, même après le re-démarrage. __Elle est perdue__. Les prochaines seront évidement lancées, si la machine est allumée. |
- | En des temps préhistoriques, les système unix utilisaient [[cron]] pour permettre l'exécution de tâches de maintenance : suppression de fichiers inutilisés, archivage de journaux, indexation de fichiers, etc. [[cron]] permet (toujours) de programmer ces travaux à une heure où la charge système est faible, de préférence pendant la nuit. Si le système est stoppé au moment de l'exécution de la tâche, celle-ci passe à la trappe. | + | [[Anacron]] n'utilise que des indications de temps relatives (« une fois par jour / par semaine / par mois »). Autre différence d'avec Cron, si vous avez demandé une tâche toute les semaines, et que votre PC est démarré seulement au bout de 10 jours, Anacron constatera le retard, et lancera donc la tâche juste après le démarrage de votre PC. |
- | Avec l'apparition et la démocratisation de l'excellent système Linux (et Ubuntu) pour le commun des mortels, il devient rare de laisser son PC allumé la nuit pour permettre à [[cron]] de nous maintenir notre système... | + | Les 2 logiciels peuvent être utilisés sur un PC régulièrement éteint, mais Anacron a le gros avantage de lancer tous les traitements en retard à chaque allumage du PC, même si ceux-ci sont peu nombreux. Avec Cron, des allumages PC trop intermittents risquent d'annuler une grande partie des traitements programmés. |
- | anacron est donc né pour permettre l'exécution de tâches sans nécessité de laisser la machine allumée 24h/24. Son créateur s'appelle Christian Schwarz. | + | La syntaxe d'anacron est plus simple que celle de cron. |
===== Principe ===== | ===== Principe ===== | ||
- | Notez bien qu'anacron n'est pas du tout destiné à remplacer [[cron]], il est complémentaire et il coexiste avec lui... | + | Anacron exécute la liste des tâches présentes dans le fichier de configuration /etc/anacrontab configuration. Chaque ligne de ce fichier spécifie une période //n// en jours, un délai //d// en minutes, un identifiant unique et une commande à exécuter. |
+ | | ||
+ | Pour chaque tâche, anacron vérifie si elle a été exécutée au cours des //n// derniers jours. Si une tâche n'a pas été exécutée depuis //n// jours ou plus, anacron exécute la commande indiquée après //d// minutes. Après exécution, un horodatage dans un fichier spécial pour chaque tâche permet à Anacron de savoir quand il devra l'exécuter à nouveau. | ||
- | anacron utilise des indications de temps relatives (« une fois par jour / par semaine / par mois ») au lieu de références temporelles absolues (« le 14 janvier 2008 à 15h 30 »). De la sorte, même si vous « manquez » un moment ou une date particulière où l'exécution d'un « job » était prévue, celui-ci sera tout de même exécuté peu de temps après le prochain démarrage du système. | + | Anacron est lancé au démarrage du PC, exécute ses tâches, puis se ferme. \\ |
+ | Pour qu'il puisse continuer à fonctionner, il faut qu'il soit relancé à intervalles réguliers. Il est donc installé avec un une tâche cron (voir /etc/cron.d/anacron) qui le lance toutes les heures de 7h30à 20h30. À l'heure actuelle cette planification est de fait assurée par un service et un « //timer// » systemd (voir systemctl cat anacron.timer). | ||
+ | |||
+ | ===== Pré-requis ===== | ||
+ | * Disposer des [[:sudo|droits d'administration]]. | ||
===== Installation ===== | ===== Installation ===== | ||
- | Nota : anacron n'est pas installé de base sur Ubuntu | + | Le programme **anacron** est normalement installé par défaut sur Ubuntu en version « desktop ». Si ce n'est pas le cas, il suffit d'[[:tutoriel/comment_installer_un_paquet|installer le paquet]] **[[apt>anacron]]** |
- | sudo apt-get install anacron | + | |
- | ===== Fonctionnement ===== | + | ===== Fonctionnement simple===== |
+ | Avec les [[:sudo|droits d'administration]], ouvrir le fichier **/etc/anacrontab** : | ||
- | * sur un système fonctionnant en permanence, c'est [[cron]] qui lance anacron à 7h30 chaque jour (voir le fichier /etc/cron.d/anacron) | + | <code>sudo nano /etc/anacrontab</code> ou |
- | * sur un système ne tournant pas en permanence, anacron est lancé au démarrage car configuré en tant que service (On le retrouve donc dans /etc/init.d) | + | <code>gedit admin:///etc/anacrontab</code> (selon votre éditeur de texte favoris). |
- | * anacron recherche les « fichiers dateurs » (anglais timestamps) correspondant à ses différents jobs dans /var/spool/anacron | + | |
- | * si, d'après un des fichiers dateurs, un job est en attente, anacron le lance | + | |
- | * anacron met à jour le fichier dateur du job en question. | + | |
- | * une fois son travail terminé, anacron s'arrête en attendant la prochaine sollicitation. Il n'y a pas de deamon "anacron" consommant de la mémoire. | + | |
+ | Ajouter à la fin du fichier votre tâche planifiée, en respectant la syntaxe | ||
+ | <file>intervalle délai identifiant commande</file> | ||
+ | où **intervalle** = nombre de jours entre les lancements ; | ||
- | Le fonctionnement d'anacron est contrôlé par le fichier /etc/anacrontab. | + | où **délai** = nombre de minutes à attendre avent l’exécution de la tâche ; |
- | Inspectez-le en tapant : | + | où **identifiant** = un nom unique de votre choix (sans espace ni barre oblique) ; |
- | cat /etc/anacrontab | + | |
- | Chaque ligne du fichier de configuration correspond à une tâche selon le schéma suivant : | + | où **commande** = une commande [[bash|bash]], le nom d'un programme, d'un script, etc. les espaces vides sont autorisés. |
- | intervalle délai étiquette commande | + | __Exemple__ : |
+ | <file> 1 15 sauvegarde rsync -avz /home/vous/Documents/ root@192.168.0.101:/home/</file> | ||
+ | |||
+ | Avec cette ligne la sauvegarde [[rsync]] est lancée tous les jours (intervalle = 1 jour), si l’ordinateur est allumé. Elle sera exécutée 15 minutes après le lancement d'Anacron. Par exemple à 7h45 si l'ordinateur était allumé à 7h30, à 11h45 s'il n’était pas allumé avant 11h30 et ainsi de suite (rappel : Anacron est lancé automatiquement toutes les heures de 7h30 à 23h30). | ||
+ | |||
+ | ===== Fonctionnement détaillé===== | ||
+ | |||
+ | Le fonctionnement d'anacron est contrôlé par le fichier **/etc/anacrontab**. | ||
+ | |||
+ | Vous pouvez l'examiner⋅: <code>cat /etc/anacrontab</code> | ||
+ | |||
+ | Vous pouvez le modofier en tant que root : | ||
+ | <code>sudo nano /etc/anacrontab</code> | ||
- | * 1ère colonne, intervalle : exprimé en jours, indique l'intervalle de temps entre 2 exécution d'une tâche. | ||
- | * 2ème colonne, délai : exprimé en minutes, c'est le délai entre 2 tâches exécutées par anacron, pour éviter qu'elles ne s'exécutent en même temps. | ||
- | * 3ème colonne, étiquette : commentaire ajouté pour les logs de anacron | ||
- | * 4ème colonne, commande : tâche à exécuter | ||
+ | Voici le contenu par défaut du fichier **/etc/anacrontab** (sur une [[jammy|jammy 22.04]]). Il vaut mieux ne pas modifier ces lignes mais vous pouvez en ajouter d'autres en dessous.. | ||
+ | <file> | ||
+ | # /etc/anacrontab: configuration file for anacron | ||
- | Par défaut, voici un exemple des lignes déjà configurées : | + | # See anacron(8) and anacrontab(5) for details. |
- | # /etc/anacrontab: configuration file for anacron | + | |
+ | SHELL=/bin/sh | ||
+ | HOME=/root # /etc/anacrontab: configuration file for anacron | ||
- | # See anacron(8) and anacrontab(5) for details. | + | # These replace cron's entries |
+ | 1 5 cron.daily run-parts --report /etc/cron.daily | ||
+ | 7 10 cron.weekly run-parts --report /etc/cron.weekly | ||
+ | @monthly 15 cron.monthly run-parts --report /etc/cron.monthly | ||
+ | |||
+ | </file> | ||
- | SHELL=/bin/sh | + | Vous pouvez remarquer que la première ligne va lancer quotidiennement les tâches cron placées sous /etc/cron.daily.\\ Grâce à Anacron on est sûr que ces tâches seront exécutées une fois dans la journée même si la machine était éteinte à l'heure où elle avaient été définies pour cron.\\ |
- | PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin | + | La seconde ligne est analogue pour les tâches hebdomadaires de cron. |
- | # These replace cron's entries | ||
- | 1 5 cron.daily nice run-parts --report /etc/cron.daily | ||
- | 7 10 cron.weekly nice run-parts --report /etc/cron.weekly | ||
- | @monthly 15 cron.monthly nice run-parts --report /etc/cron.monthly | ||
==== Options de lancement ==== | ==== Options de lancement ==== | ||
+ | Normalement vous n'avez besoin d'aucune option : **anacron** se lance tout seul. Il existe cependant certains options, que vous pouvez appeler pour un fonctionnement adapté à votre besoin. | ||
- | **-f** : Force l'exécution des tâches, en ignorant les fichiers dateurs.\\ | + | Pour ce faire, tapez **anacron**, suivi d'une option (par exemple **anacron -T**) : |
- | **-u** : Met à jour à la date courante les fichiers dateurs des tâches, mais ne lance rien.\\ | + | |
+ | **-f** : Force l'exécution immédiate des tâches, en ignorant les fichiers dateurs.\\ | ||
+ | **-u** : Met à jour à la date courante dans les fichiers dateurs des tâches, mais ne lance rien.\\ | ||
**-s** : Met en série l'exécution des tâches. Anacron ne lancera pas une nouvelle tâche avant que la précédente ne soit terminée.\\ | **-s** : Met en série l'exécution des tâches. Anacron ne lancera pas une nouvelle tâche avant que la précédente ne soit terminée.\\ | ||
**-n** : Lance les tâches tout de suite. Ignore les définitions de délai dans le fichier /etc/anacrontab Cette option implique -s.\\ | **-n** : Lance les tâches tout de suite. Ignore les définitions de délai dans le fichier /etc/anacrontab Cette option implique -s.\\ | ||
**-d** : N'exécute pas en arrière-plan. Dans ce mode, Anacron enverra les messages d'information vers la sortie d'erreurs, ainsi qu'à syslog. La sortie des tâches est envoyée via un message comme d'habitude.\\ | **-d** : N'exécute pas en arrière-plan. Dans ce mode, Anacron enverra les messages d'information vers la sortie d'erreurs, ainsi qu'à syslog. La sortie des tâches est envoyée via un message comme d'habitude.\\ | ||
**-q** : Supprime les messages destinés à la sortie d'erreurs. Applicable seulement avec -d.\\ | **-q** : Supprime les messages destinés à la sortie d'erreurs. Applicable seulement avec -d.\\ | ||
- | **-t anacrontab** : Utilise le fichier désigné anacrontab, à la place de celui par défaut.\\ | + | **-t anacrontab** : Utilise le fichier anacrontab défini, à la place de celui par défaut. Par exemple : **anacron -t ~/.anacron/etc/anacrontab**\\ |
**-V** : Affiche l'information de version, puis s'arrête.\\ | **-V** : Affiche l'information de version, puis s'arrête.\\ | ||
**-h** : Affiche un court message d'utilisation, puis s'arrête.\\ | **-h** : Affiche un court message d'utilisation, puis s'arrête.\\ | ||
- | + | **-T** : Test la syntaxe de votre anacrontab, et indique les erreurs.\\ | |
- | + | ||
- | Lancez anacron - pour voir 8-O | + | |
- | sudo /usr/sbin/anacron -d | + | |
===== Bon à savoir ===== | ===== Bon à savoir ===== | ||
- | <note>anacron n'est pas lancé si l'ordinateur que vous utilisez n'est pas sur secteur. Ainsi, il n'entraîne pas de consommation supplémentaire pour un portable.</note> | + | <note>anacron n'est pas lancé si l'ordinateur que vous utilisez n'est pas branché sur secteur. Ainsi, il n'entraîne pas de consommation supplémentaire pour un portable.</note> |
- | TBC (ToBeContinued) | + | ===== Liens ===== |
+ | * [[:cron]] : planifier/programmer des tâches | ||
+ | * [[incron]] : effectuer une action, commande(s), scripts, etc, en cas de modifications de fichiers ou de répertoires donnés | ||
+ | * [[fcron]] : programmer des tâches devant être exécutées | ||
- | Auteur : [[utilisateurs/sylvainsjc]] | + | Auteurs : [[utilisateurs/sylvainsjc]] - [[utilisateurs/christophe c]] |
- | Contributeurs : | + | Contributeurs : |