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 02/01/2025, 13:44]
141.227.26.230 [Mots de passe]
anacron [Le 23/02/2025, 10:04] (Version actuelle)
92.137.73.183 [Fonctionnement simple] typo
Ligne 6: Ligne 6:
  
 ===== Différence avec Cron ===== ===== Différence avec Cron =====
-Cron est plutôt utilisé pour des machines à fonctionnement permanent (comme les serveurs).\\ +[[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** 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. 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.+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 ceux-ci ​sont peu nombreux. Avec Cron, des allumages PC trop intermittents risquent d'​annuler une grande partie des traitements programmés.+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.+La syntaxe d'Anacron ​est plus simple que celle de cron.
  
 ===== Principe ===== ===== Principe =====
  
-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.+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. \\ Anacron est lancé au démarrage du PC, exécute ses tâches, puis se ferme. \\
-Pour qu'il puisse continuer ​à fonctionneril 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).+ 
 +__Note__ (vous n'avez rien à fairec'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**).
  
 ===== Pré-requis ===== ===== Pré-requis =====
Ligne 40: 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. On peut également ​utiliser **@daily** (tous les jours)**@weekly** (chaque semaineou **@monthly** (chaque ​mois)mais ce n'est pas indispensable ;+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 avent l’exécution de la tâche ;
Ligne 46: Ligne 48:
 où **identifiant** = 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é, vers un DD connecté à votre box. Cette 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).
  
-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).+<note warning>​Après modification du fichier anacrontabil est prudent ​de lancer <code bash>​anacron -T</​code>​ pour vérifier que la syntaxe ​est bonne</​note>​
  
 ===== Fonctionnement détaillé===== ===== Fonctionnement détaillé=====
  • anacron.1735821893.txt.gz
  • Dernière modification: Le 02/01/2025, 13:44
  • par 141.227.26.230