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
anacron [Le 29/03/2018, 09:52]
194.214.167.171 [anacron (en anglais anachronistic command scheduler ou planificateur de commande « anachronique »)]
anacron [Le 03/03/2024, 13:02] (Version actuelle)
86.202.8.12 [Différence avec Cron]
Ligne 1: Ligne 1:
-{{tag>cron}}+{{tag>Focal Bionic Xenial sauvegarde synchronisation}}
 ---- ----
 +====== Anacron ======
  
 +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).
  
 +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.
  
-===== A quoi ça sert ? =====+[[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.
  
-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ésarchivage de journaux, indexation de fichiers, etc[[cron]] permet (toujours) de programmer ces travaux à une heure où la charge système est faiblede 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.+Les 2 logiciels peuvent être utilisés sur un PC régulièrement éteintmais Anacron a le gros avantage de lancer tous les traitements en retard à chaque allumage du PCmême si ceux-ci sont peu nombreuxAvec Crondes allumages PC trop intermittents risquent d'annuler une grande partie des traitements programmés.
  
-Avec l'​apparition et la démocratisation de l'​excellent système Linux pour le commun des mortels, il devient rare de laisser son PC allumé la nuit pour permettre à [[cron]] de nous maintenir notre système...+===== Principe =====
  
-anacron est donc né pour permettre l'​exécution de tâches ​sans nécessité ​de laisser ​la machine allumée 24h/24Son créateur s'appelle Christian Schwarz.+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// minutesAprè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.
  
-===== Principe =====+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).
  
-Notez bien qu'​anacron n'est pas du tout destiné à remplacer ​[[cron]], il est complémentaire et il coexiste avec lui...+===== Pré-requis ===== 
 +  * Disposer des [[:​sudo|droits d'​administration]].
  
-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. 
 ===== Installation ===== ===== Installation =====
-Le programme anacron est normalement 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]]**
  
-Si ce n'est pas le cas : +===== Fonctionnement simple===== 
-   sudo apt-get install anacron+Avec les [[:​sudo|droits d'administration]],​ ouvrir ​le fichier **/​etc/​anacrontab** ​
  
-===== Fonctionnement =====+<​code>​sudo nano /​etc/​anacrontab</​code>​ ou  
 +<​code>​gedit admin:///​etc/​anacrontab</​code>​ (selon votre éditeur de texte favoris).
  
-  * sur un système fonctionnant en permanence, c'est [[cron]] qui lance anacron ​à 7h30 chaque jour (voir le fichier ​/​etc/​cron.d/​anacron) +Ajouter ​à la fin du fichier ​votre tâche planifiée, en respectant la syntaxe 
-  * sur un système ne tournant pas en permanenceanacron est lancé au démarrage car configuré ​en tant que service (On le retrouve donc dans /​etc/​init.d) +<​file>​intervalle ​  ​délai ​  ​identifiant ​  ​commande<​/file> 
-  * anacron recherche les « fichiers dateurs » (anglais timestamps) correspondant à ses différents jobs dans /var/​spool/​anacron +où **intervalle*= nombre ​de jours entre les lancements ;
-  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.+
  
 +où **délai** = nombre de minutes ​ à attendre avent l’exécution de la tâche ;
  
-Le fonctionnement d'​anacron est contrôlé par le fichier /​etc/​anacrontab.+où **identifiant** = un nom unique de votre choix (sans espace ni barre oblique) ;
  
-Inspectez-le en tapant : +où **commande** = une commande [[bash|bash]], ​le nom d'un programme, d'un script, ​etc. les espaces vides sont autorisés.
-   cat /etc/anacrontab+
  
-Chaque ligne du fichier de configuration correspond à une tâche selon le schéma suivant ​:+__Exemple__ ​: 
 +<​file> ​  ​1 15 sauvegarde rsync -avz /​home/​vous/​Documents/​ root@192.168.0.101:/​home/</​file>​
  
-intervalle ​  délai ​  ​étiquette ​  ​commande+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écutions 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             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.
 +
 +Pour ce faire, tapez **anacron**,​ suivi d'une option (par exemple **anacron -T**) :
  
-**-f** : Force l'​exécution des tâches, en ignorant les fichiers dateurs.\\ +**-f** : Force l'​exécution ​immédiate ​des tâches, en ignorant les fichiers dateurs.\\ 
-**-u** : Met à jour à la date courante les fichiers dateurs des tâches, mais ne lance rien.\\+**-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.\\
  
 ===== 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>​
  
 ===== Liens ===== ===== Liens =====
Ligne 82: Ligne 105:
   * [[fcron]] : programmer des tâches devant être exécutées   * [[fcron]] : programmer des tâches devant être exécutées
  
-Auteur ​: [[utilisateurs/​sylvainsjc]]+Auteurs ​: [[utilisateurs/​sylvainsjc]] - [[utilisateurs/​christophe c]]
  
-Contributeurs : +Contributeurs :
  • anacron.1522309964.txt.gz
  • Dernière modification: Le 29/03/2018, 09:52
  • par 194.214.167.171