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 09/02/2024, 17:34]
bruno [Fonctionnement simple] précision
anacron [Le 15/05/2025, 15:01] (Version actuelle)
141.227.26.230 [Fonctionnement simple] ortho
Ligne 5: Ligne 5:
 Anacron est utilisé pour exécuter des commandes, scripts ou programmes périodiquement,​ avec une fréquence spécifiée en jours.\\ Anacron est utilisé pour exécuter des commandes, scripts ou programmes périodiquement,​ avec une fréquence spécifiée en jours.\\
  
-Contrairement à [[cron|cron]], il ne part pas du principe que la machine fonctionne en continu. Il peut donc être utilisé ​sur des machines ​qui ne fonctionnent pas en permanence ​pour planifier ​des tâches quotidiennes,​ hebdomadaires ou mensuelles.+===== Différence avec Cron ===== 
 +[[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).
  
-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.+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. 
 + 
 +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. 
 + 
 +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 ces derniers sont peu nombreux. Avec Cron, des allumages PC trop intermittents risquent d'​annuler une grande partie des traitements programmés. 
 + 
 +La syntaxe d'​Anacron est plus simple que celle de cron. 
 + 
 +===== Principe ===== 
 + 
 +Anacron exécute la liste des tâches présentes dans le fichier de configuration ​**/​etc/​anacrontab**. 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.+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 est lancé au démarrage du PC, exécute ses tâches, puis se ferme. \\
  
-Pour qu'anacron puisse fonctionner il faut qu'​il ​soit lui même lancé ​à intervalles réguliers.\\ +__Note__ (vous n'avez rien à faire, c'est juste pour une bonne compréhension) : Anacron se fermant après exécution, ​il doit être relancé ​à intervalles réguliers. Il l'est par une tâche ​[[cron|cron]] ​(voir **/​etc/​cron.d/​anacron**) qui le lance toutes les heuresde 7h30 à 23h30. À l'​heure actuellecette planification est de fait assurée par un service et un « //timer// » systemd (voir **systemctl cat anacron.timer**).
-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 ===== ===== Pré-requis =====
Ligne 28: Ligne 41:
 Ajouter à la fin du fichier votre tâche planifiée, en respectant la syntaxe Ajouter à la fin du fichier votre tâche planifiée, en respectant la syntaxe
 <​file>​intervalle ​  ​délai ​  ​identifiant ​  ​commande</​file>​ <​file>​intervalle ​  ​délai ​  ​identifiant ​  ​commande</​file>​
-où **intervalle** = nombre de jours entre les lancements ​;+où **intervalle** = nombre de jours entre les lancements. On peut utiliser **@monthly** pour lancer une tâche mensuelle. 
 +Par contre, @daily et @weekly ne sont plus supportés ((et retournent l’erreur //Unknown named period//, cf. https://​askubuntu.com/​a/​511347/​385361)). Pour un lancement chaque jour, mettre simplement //1//, et //7// pour un lancement hebdomadaire. ​
  
-où **délai** = nombre de minutes ​ à attendre ​avent l’exécution de la tâche ;+où **délai** = nombre de minutes ​ à attendre ​avant l’exécution de la tâche ;
  
-où **identifaint** = un nom unique de votre choix (sans espace ni barre oblique) ;+où **identifiant** = un nom unique de votre choix (sans espace ni barre oblique) ;
  
-où **commande** = une commande [[bash|bash]],​ le nom d'un programme, d'un script, etc. les espaces vides sont autorisés.+où **commande** = une commande [[bash|bash]],​ le nom d'un programme, d'un script, etc. Les espaces vides sont autorisés.
  
 __Exemple__ : __Exemple__ :
-<​file> ​  ​1 15 sauvegarde rsync -avz /​home/​vous/​Documents/​ root@192.168.0.101:/​home/</​file>​+<​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 heurs de 7h30 à 23h30).+Avec cette ligne la sauvegarde [[rsync]] est lancée tous les jours (intervalle = 1 jour), si l’ordinateur est allumé, vers un DD connecté à votre boxCette sauvegarde ​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). 
 + 
 +<note warning>​Après modification du fichier anacrontab, il est prudent de lancer <code bash>​anacron -T</​code>​ pour vérifier que la syntaxe est bonne</​note>​
  
 ===== Fonctionnement détaillé===== ===== Fonctionnement détaillé=====
Ligne 47: Ligne 63:
 Vous pouvez l'​examiner⋅:​ <​code>​cat /​etc/​anacrontab</​code>​ Vous pouvez l'​examiner⋅:​ <​code>​cat /​etc/​anacrontab</​code>​
  
-Vous pouvez le modofier ​en tant que root :+Vous pouvez le modifier ​en tant que root :
 <​code>​sudo nano /​etc/​anacrontab</​code>​ <​code>​sudo nano /​etc/​anacrontab</​code>​
  
Ligne 60: Ligne 76:
 HOME=/​root ​  # /​etc/​anacrontab:​ configuration file for anacron HOME=/​root ​  # /​etc/​anacrontab:​ configuration file for anacron
        
-   # See anacron(8) and anacrontab(5) for details. 
-    
-   ​SHELL=/​bin/​sh 
-   ​PATH=/​usr/​local/​sbin:/​usr/​local/​bin:/​sbin:/​bin:/​usr/​sbin:/​usr/​bin 
-   ​HOME=/​root 
-   ​LOGNAME=root 
-    
-   # 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 
-LOGNAME=root 
- 
 # These replace cron's entries # These replace cron's entries
 1       ​5 ​      ​cron.daily ​     run-parts --report /​etc/​cron.daily 1       ​5 ​      ​cron.daily ​     run-parts --report /​etc/​cron.daily
Ligne 100: Ligne 103:
 **-T** : Test la syntaxe de votre anacrontab, et indique les erreurs.\\ **-T** : Test la syntaxe de votre anacrontab, et indique les erreurs.\\
  
 +==== Mots de passe ====
 +Si le programme que vous lancez nécessite normalement le mots de passe super-utilisateur,​ celui-ci ne vous sera pas demandé. Le programme s'​exécutera quand même, car c'est l'​utilisateur **root** (et non vous) qui lance le Anacron, et **root** n'a pas besoin de mot de passe. Ni de **sudo**, bien sur.
 +==== Affichage ====
 +L'​utilisateur **root** qui exécute Anacron n'a pas d'​écran dédié par défaut, donc le résultat du traitement ne s'​affiche pas à l'​écran. ​
 +
 +Si vous souhaitez avoir un retour sur les messages liés à l'​exécution,​ vous pouvez terminer le script lancé par Anacron avec une redirection vers un fichier texte. Par exemple, ajouter à la fin d'une commande **>> /​home/​moi/​controle.txt** enverra la ligne normalement affichée à l'​écran (après la commande) dans le fichier controle.txt. Cela vous permet de contrôler la bonne exécution de la commande. Bien sur, pour cela il faut que votre commande renvoi un message après son exécution, sinon il n'y aura rien (**moi** est à remplacer par votre véritable nom utilisateur).
 +
 +On peut demander que Anacron soit lancé par le compte utilisateur si on souhaite un affichage écran. Comme décrit [[https://​askubuntu.com/​questions/​235089/​how-can-i-run-anacron-in-user-mode|ici]].
 ===== Bon à savoir ===== ===== Bon à savoir =====
 <​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>​ <​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>​
  • anacron.1707496441.txt.gz
  • Dernière modification: Le 09/02/2024, 17:34
  • par bruno