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 08/07/2019, 12:05] (Version actuelle)
109.7.55.182 [Fonctionnement simple] précision utilisateur root
Ligne 3: Ligne 3:
  
  
 +===== Principe =====
  
 +Anacron sert à lancer __automatiquement__ des tâches informatiques (sauvegardes ou autres) à des intervalles prédéfinis (tout comme [[cron|cron]]).
  
-===== A quoi ça sert ? =====+  - Cron est utilisé pour des machines à fonctionnement permanent (plutôt des serveurs).  
 +  - Anacron est utilisé pour des machines à fonctionnement discontinu (plutôt des PC).
  
-En des temps préhistoriquesles 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 ​(toujoursde 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âchecelle-ci passe à la trappe.+En effet, [[cron|cron]] ​lance une tâche à un moment pré-déterminé ​(« le 14 janvier 2018 à 15h 30 »). Si la machine n'est pas allumée, la tâche n'est pas lancéeet ne le sera jamais, même après le re-démarrage. Elle est __perdue__.
  
-Avec l'​apparition ​et la démocratisation ​de l'​excellent système Linux pour le commun des mortelsil devient rare de laisser son PC allumé ​la nuit pour permettre à [[cron]] ​de nous maintenir notre système...+Anacron utilise au contraire des indications de temps relatives (« une fois par jour / par semaine / par mois »). Si vous avez demandé une tâche toute les semaines, ​et que votre PC est démarré seulement au bout de 10 jour, anacron constatera ​le retardet lancera donc la tâche juste après le démarrage ​de votre PC.
  
-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 démarre automatiquement à chaque lancement d'​Ubuntu (vous n'avez rien à définir à ce niveau), vérifie si une ou des tâches sont à lancer, les démarre, puis se désactive jusqu'​au prochain démarrage de votre système OU jusqu'​à 7h30 le matin suivant (c'est d'​ailleurs cron qui redémarre ​anacron ​à 7h30 - c'est du moins le paramétrage sur Ubuntu). Bien que anacron soit plutôt prévu ​pour les PC, on peut donc l'utiliser sur des serveurs UbuntuL'inverse (cron sur PC) est moins évident.
  
-===== Principe =====+Le créateur d'​anacron s'​appelle Christian Schwarz. Le logiciel a depuis été totalement réécrit en [[https://​fr.wikipedia.org/​wiki/​C_(langage)|langage C]] par Itai Tzur.
  
-Notez bien qu'​anacron n'est pas du tout destiné à remplacer [[cron]], il est complémentaire et il coexiste avec lui... 
- 
-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é de base sur UbuntuSi ce n'est pas le cas :
- +
-Si ce n'est pas le cas :+
    sudo apt-get install anacron    sudo apt-get install anacron
  
-===== Fonctionnement =====+===== Fonctionnement ​simple===== 
 +Ouvrir le fichier **/​etc/​anacrontab** avec les droits roots : 
  
-  ​sur un système fonctionnant en permanence, c'est [[cron]] qui lance anacron à 7h30 chaque jour (voir le fichier ​/etc/cron.d/​anacron) +**pkexec mousepad ​/etc/anacrontab*ou **pkexec gedit /etc/anacrontab** (selon votre éditeur de texte favoris).
-  ​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) +
-  ​anacron recherche les « fichiers dateurs » (anglais timestampscorrespondant à 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 automatisation,​ au format ​
 +   ​intervalle ​  ​délai ​  ​étiquette ​  ​commande
 +ou **intervalle** = nombre de jour entre les lancements.
 +
 +ou **délai** = nombre de minutes entre le démarrage du PC et le lancement de la tâche : pour ne pas ralentir le démarrage PC, pour ne pas lancer plusieurs tâches en même temps (à ce titre, vérifiez qu'une tâche déjà dans le fichier ne se lance pas au même nombre de minutes après le démarrage que la nouvelle).
 +
 +ou **étiquette** = nom de la tâche (choisit par vous). Attention, __jamais__ d'​espace vide ou de slash.
 +
 +ou **commande** = une commande [[bash|bash]],​ le nom d'un programme, d'un script .... les espaces vides sont autorisés.
 +
 +__Exemple__ :
 +   ​1 15 sauvegarde rsync -avz /​home/​vous/​Documents/​ root@192.168.0.101:/​home/​
 +=> La sauvegarde [[rsync]] est lancée chaque jour (si le PC est allumé), 15 minutes après le démarrage du PC, pour sauvegarder le répertoire /Documents dans un répertoire se trouvant sur un serveur distant.
 +
 +Attention, c'est l'​utilisateur root qui lance anacron. Il ne connait pas le répertoire par défaut de l'​utilisateur courant, il faut donc (si besoin) le lui indiquer en clair.
 +De plus, l'​utilisateur root n'a pas d'​écran affecté, on ne peut donc pas lancer et afficher par ce biais une application graphique.
 +
 +===== Fonctionnement détaillé=====
 +
 +  * sur un système fonctionnant en permanence, c'est [[cron]] qui lance anacron à 7h30 chaque jour (voir le fichier /​etc/​cron.d/​anacron)
 +  * sur un système ne tournant pas en permanence, anacron est lancé au démarrage car configuré en tant que service.
 +  * anacron recherche les « fichiers dateurs » (anglais timestamps) correspondant à ses différents lancements (jobs) dans /​var/​spool/​anacron. C'est dans ces fichiers que anacron sauvegarde les dates et heure de ses dernières automatisations.
 +     - si, d'​après un des fichiers dateurs, un job est en attente, anacron le lance
 +     - puis anacron met à jour le fichier dateur du job en question. Il se basera dessus pour connaître la date du prochain lancement.
  
-Le fonctionnement d'​anacron est contrôlé par le fichier /​etc/​anacrontab.+Le fonctionnement d'​anacron est contrôlé par le fichier ​**/​etc/​anacrontab**.
  
 Inspectez-le en tapant : Inspectez-le en tapant :
    cat /​etc/​anacrontab    cat /​etc/​anacrontab
  
 +Modifiez le par un :
 +   ​pkexec gedit /​etc/​anacrontab
 Chaque ligne du fichier de configuration correspond à une tâche selon le schéma suivant : Chaque ligne du fichier de configuration correspond à une tâche selon le schéma suivant :
  
-intervalle ​  ​délai ​  ​étiquette ​  ​commande+   intervalle ​  ​délai ​  ​étiquette ​  ​commande
  
-  * 1ère colonne, intervalle : exprimé en jours, indique l'intervalle ​de temps entre 2 exécutions d'une tâche. +  * 1ère colonne, intervalle : c'est le nombre ​de __jours__ ​entre 2 exécutions d'​une ​même tâche. Vous pouvez remplacer le nombre de jours par **@monthly**,​ ce qui lancera la tâche au début de chaque mois. Peu importe alors le nombre de jours du mois (28, 29, 30 ou 31)
-  * 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. +  * 2ème colonne, délai : c'est le nombre de __minutes__ ​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 +  * 3ème colonne, étiquette : nom que vous donnez à la tâche, ​pour les logs de anacron. __Ne doit pas comprendre d'​espace vide ou de slash__ !! 
-  * 4ème colonne, commande : tâche à exécuter+  * 4ème colonne, commande : tâche à exécuter ​(nom d'un script, commande bash, lancement d'un programme ...). Peut contenir des espaces vides.
    
 +Voici le contenu par défaut du fichier **/​etc/​anacrontab** (sur une 18.04). Ces lignes ne sont pas à modifier (elles sont utilisées pour générer des fichiers de log). On ajoute en-dessous sa ou ses commandes à automatiser.
  
-Par défaut, voici un exemple des lignes déjà configurées : 
    # /​etc/​anacrontab:​ configuration file for anacron    # /​etc/​anacrontab:​ configuration file for anacron
        
Ligne 56: Ligne 76:
    ​SHELL=/​bin/​sh    ​SHELL=/​bin/​sh
    ​PATH=/​usr/​local/​sbin:/​usr/​local/​bin:/​sbin:/​bin:/​usr/​sbin:/​usr/​bin    ​PATH=/​usr/​local/​sbin:/​usr/​local/​bin:/​sbin:/​bin:/​usr/​sbin:/​usr/​bin
 +   ​HOME=/​root
 +   ​LOGNAME=root
        
    # These replace cron's entries    # These replace cron's entries
  • anacron.1522309964.txt.gz
  • Dernière modification: Le 29/03/2018, 09:52
  • par 194.214.167.171