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
Prochaine révision Les deux révisions suivantes
anacron [Le 11/12/2015, 12:10]
chamblard [Liens] + pages relatives
anacron [Le 03/05/2020, 15:47]
christophe c [Fonctionnement détaillé] @yearly
Ligne 1: Ligne 1:
-{{tag>cron}}+{{tag>Bionic Xenial sauvegarde synchronisation}}
 ---- ----
 +====== Anacron ======
 +Anacron sert à lancer __automatiquement__ des tâches informatiques (sauvegardes ou autres) à des intervalles prédéfinis (tout comme [[cron|cron]]).
  
-====== anacron ​(en anglais anachronistic command scheduler ou planificateur de commande « anachronique »======+  - [[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 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ée, et ne le sera jamais, même après le re-démarrage. Elle est __perdue__.
  
-===== A quoi ça sert ? =====+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 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és,​ archivage de journaux, indexation de fichiers, etc[[cron]] permet ​(toujoursde 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** 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.
  
-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...+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. 
 +===== Pré-requis ===== 
 +  * Disposer des [[:​sudo|droits d'​administration]].
  
-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.+===== Installation ===== 
 +Le programme **anacron** est normalement installé ​de base sur UbuntuSi ce n'est pas le cas, il suffit d'​[[:​tutoriel/​comment_installer_un_paquet|installer le paquet]] **[[apt>​anacron]]**
  
-===== Principe ​=====+===== Fonctionnement simple===== 
 +Avec les [[:​sudo|droits d'​administration]],​ ouvrir le fichier **/​etc/​anacrontab** : 
  
-Notez bien qu'​anacron n'est pas du tout destiné à remplacer [[cron]], il est complémentaire et il coexiste avec lui...+<​code>​pkexec mousepad /​etc/​anacrontab</​code>​ ou  
 +<​code>​gedit admin:///​etc/​anacrontab</​code>​ (selon votre éditeur de texte favoris).
  
-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 sortemê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. +Ajouter ​à la fin du fichier votre automatisationau format  
-===== Installation ===== +<​file>​intervalle ​  ​délai ​  ​étiquette ​  ​commande</​file>​ 
-Le programme anacron est normalement installé de base sur Ubuntu+où **intervalle** = nombre ​de jour entre les lancements.
  
-Si ce n'est pas le cas : +où **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).
-   sudo apt-get install anacron+
  
-===== Fonctionnement =====+où **étiquette** ​nom de la tâche (choisit par vous). Attention, __jamais__ d'​espace vide ou de slash.
  
-  ​sur un système fonctionnant en permanence, c'​est ​[[cron]] qui lance anacron à 7h30 chaque jour (voir le fichier /etc/cron.d/anacron) +où **commande** = une commande ​[[bash|bash]]le nom d'un programme, d'​un ​script .... les espaces vides sont autorisés.
-  * 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 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 sollicitationIl n'y a pas de deamon "​anacron"​ consommant de la mémoire.+
  
 +__Exemple__ :
 +<​file> ​  ​1 15 sauvegarde rsync -avz /​home/​vous/​Documents/​ root@192.168.0.101:/​home/</​file>​
 +=> La sauvegarde [[rsync]] est lancée tout les **1** 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.
  
-Le fonctionnement d'anacron ​est contrôlé ​par le fichier /etc/anacrontab.+**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 une application graphique, sauf a créer un anacrontab ​associé a l'​utilisateur courant, et non a root (cf. plus bas).**
  
-Inspectez-le en tapant : +===== Fonctionnement détaillé=====
-   cat /​etc/​anacrontab+
  
-Chaque ligne du fichier de configuration correspond ​à une tâche selon le schéma suivant :+  * 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.
  
-intervalle ​  ​délai ​  ​étiquette ​  ​commande+Le fonctionnement d'​anacron est contrôlé par le fichier **/​etc/​anacrontab**.
  
-  * 1ère colonne, intervalle : exprimé en jours, indique l'​intervalle de temps entre 2 exécutions d'une tâche. +Inspectez-le en saisissant ​<​code>​cat /​etc/​anacrontab</​code>​
-  * 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 +
- +
  
-Par défautvoici un exemple ​des lignes ​déjà configurées :+Modifiez le par un : 
 +<​code>​sudo -H gedit /​etc/​anacrontab</​code>​ 
 +Chaque ligne du fichier de configuration correspond à une tâche selon le schéma suivant : 
 +<​file>​intervalle ​  ​délai ​  ​étiquette ​  ​commande</​file>​ 
 + 
 +  * 1ère colonneintervalle : 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). La macro **@yearly** est également acceptée. 
 +  * 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 : 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 (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 [[bionic|Bionic 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. 
 +<​file>​
    # /​etc/​anacrontab:​ configuration file for anacron    # /​etc/​anacrontab:​ configuration file for anacron
        
Ligne 56: Ligne 73:
    ​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
Ligne 61: Ligne 80:
    ​7 10 cron.weekly nice run-parts --report /​etc/​cron.weekly    ​7 10 cron.weekly nice run-parts --report /​etc/​cron.weekly
    ​@monthly 15 cron.monthly nice run-parts --report /​etc/​cron.monthly    ​@monthly 15 cron.monthly nice run-parts --report /​etc/​cron.monthly
 +   </​file>​
  
 +==== Lancement d'​applications graphiques ====
 +Par défaut, anacron est lancé par l'​utilisateur root. Les commandes, même les commandes "​systèmes",​ n'ont donc pas besoin de mot de passe (root a tous les droits). Et rien n’apparaît à l'​écran,​ car l'​utilisateur root n'a pas d'​écran affecté.
 +
 +Si on souhaite lancer une application graphique visible à l'​écran (bien sûr, si un mot de passe est nécessaire,​ il sera désormais demandé), il faut donc créer un anacrontab spécifique à l'​utilisateur (à vous). Pour ce faire :
 +
 +1/ __Créez les 3 répertoires nécessaires__ dans votre compte utilisateur :
 +<​code>​mkdir ~/.anacron ~/​.anacron/​etc ~/​.anacron/​spool</​code>​
 +
 +2/ __Créez un fichier texte **anacrontab**__ dans le répertoire **~/​.anacron/​etc/​**,​ et placez-y un contenu simplifié, qui ne remplace pas, mais s'​ajoute à l'​anacrontab du système. Par exemple :
 +<​code>​
 +# Ceci est mon anacrontab perso.
 +
 +SHELL=/​bin/​sh
 +PATH=/​usr/​local/​sbin:/​usr/​local/​bin:/​sbin:/​bin:/​usr/​sbin:/​usr/​bin:/​home/​VOTRE_IDENTIFIANT/​.anacron
 +
 +4 2 test thunar
 +</​code>​
 +**Personnalisez VOTRE_IDENTIFIANT** (ligne 4)! via ce fichier, qui est un simple fichier texte sans extension, anacron lance tous les 4 jours, 2 minutes après le démarrage, un processus nommé test (le nom est libre) qui lance l'​explorateur de fichier Thunar (celui de Xubuntu).
 +Vous pouvez mettre autant de lignes de commandes et de réglages que désiré.
 +
 +3/ __Ouvrez votre fichier **~/​.profil**,​ et placez cette ligne à la fin__ :
 +<​code>/​usr/​sbin/​anacron -s -t ${HOME}/​.anacron/​etc/​anacrontab -S ${HOME}/​.anacron/​spool</​code>​
 +
 +Cette ligne lance votre anacrontab personnel. Redémarrez,​ et à chaque lancement 4 jours ou plus depuis la précédente exécution de la commande, celle-ci exécutera de nouveau.
 ==== Options de lancement ==== ==== Options de lancement ====
 +Tapez **anacron**,​ suivi d'un option (par exemple **anacron -T**) :
  
 **-f** : Force l'​exécution des tâches, en ignorant les fichiers dateurs.\\ **-f** : Force l'​exécution des tâches, en ignorant les fichiers dateurs.\\
Ligne 73: Ligne 118:
 **-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 129:
   * [[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.txt
  • Dernière modification: Le 11/06/2020, 13:04
  • par Christophe c