logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 06-09-2024 19:45:58

Tawal
Membre
Distrib. : Debian Stable à jour
Noyau : amd64
(G)UI : Xfce
Inscription : 25-02-2021

[anacron] mot clef de période "@weekly" non reconnu [Résolu]

Hello,

J'essaie d'exécuter une tâche toutes les semaines en utilisant anacron plutôt que cron.
Car j'ai besoin que cette tâche soit exécutée dans les délais même si le PC a été éteint.

Je consulte quelques docs (man …) et ça parait simple (ça l'est en effet).
Je crée donc une ligne dans l'anacrontab respectant la syntaxe (période delai nom_du_job commande).
Et ça ne fonctionne pas bien.
La commande est bien exécutée mais toutes les heures.

Avec l'option -T d'anacron, on peut vérifier le fichier /etc/anacrontab
Voici son retour :

$ anacron -T
anacron: /etc/anacrontab: Unknown named period on line 14, skipping
$



Je change dans /etc/anacrontab le mot clef "@weekly" par "@monthly" et tout à l'air de fonctionner (je n'ai pas attendu un mois smile)
Plus de mail toutes les heures indiquant l'exécution de la tâche.
Plus de retour de

anacron -T




Je peux m'accommoder de cette période d'un mois.
Mais j'aurais préféré une période d'une semaine.

merci.gif de votre aide.


Edit:
J'ai aussi consulté et par la suite enlevé le fichier timestamp de mon job (/var/spool/anacron/mon_job)
Il contenait bien la date d'aujourd'hui (normal, la commande a été exécutée).
Depuis la suppression de ce fichier et le remplacement du mot clef "@weekly", ce fichier s'est normalement recréé contenant la date d'aujourd'hui.
Et plus de symptômes.

Edit2: Ajout d'informations.
Le contenu détaillé de /var/spool/anacron :

total 16K
-rw------- 1 root root 9  6 sept. 07:36 cron.daily
-rw------- 1 root root 9  1 sept. 07:45 cron.monthly
-rw------- 1 root root 9  3 sept. 07:44 cron.weekly
-rw------- 1 root root 9  6 sept. 20:04 mon_job


Et le fichier /etc/anacrontab :

# /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      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
@monthly    30  mon_job         /usr/local/bin/mon_job


Donc la dernière ligne (14) fonctionne avec @monthly mais pas avec @weekly

Dernière modification par Tawal (10-09-2024 22:15:37)


Comme la science n'est pas infuse, elle se diffuse.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !

Hors ligne

#2 07-09-2024 10:07:49

vv222
Administrateur
Distrib. : Debian Sid
(G)UI : sway
Inscription : 18-11-2013
Site Web

Re : [anacron] mot clef de période "@weekly" non reconnu [Résolu]

Tu as un exemple de tâche hebdomadaire dans le fichier que tu as posté wink

Mais plus simplement je pense que tu peux écrire ton script sous /etc/cron.weekly, et cron + anacron feront ce qu’il faut pour qu’il soit lancé toutes les semaines.

Jouer sous Debian ? Facile !

Ceterum censeo Barum esse delendam

Hors ligne

#3 08-09-2024 07:38:28

Tawal
Membre
Distrib. : Debian Stable à jour
Noyau : amd64
(G)UI : Xfce
Inscription : 25-02-2021

Re : [anacron] mot clef de période "@weekly" non reconnu [Résolu]

Pas tout à fait d'accord avec toi sur le fait que cron.weekly fera le même travail.

Exemple:
Pour cron, il lui faut un jour dans la semaine pour l'exécution du script, disons lundi.
Si le PC est éteint le lundi entier et allumé que le mardi, il faudra attendre le lundi prochain pour que soit lancé le script par cron.

Pour anacron, pas de jour d'exécution juste une période. Donc le mardi, le script sera exécuté.

Donc pour l'instant je reste avec ce qui fonctionne : la périodicité d'un mois.

Quant à l'exemple, la période "7" est différente de la période "@weekly" :
7 : il faut un écart de 7 jours entre 2 exécution du script (pas un de moins ni de plus)
@weekly : il faut que le script soit exécuté dans la semaine en cours. Il peut donc y avoir un écart de moins de 7 jours entre le 2 exécutions du script.
On peut mieux comprendre cette différence avec 30 ou 31 et @monthly.



Edit: Once uppon a time …
J'avais utilisé anacron pour des tâches particulières et importantes.
Et j'avais décelé un autre souci à l'époque, je ne sais pas si ça a été comblé.
Par défaut, anacron se lance en tâche de fond (invisible à l'utilisateur).
Si on éteint le PC durant l'exécution d'une série de tâches anacron, cette série est simplement arrêtée et reprise au prochain démarrage.
Reprise oui mais avec un détail, la tâche qui a été coupée par l'extinction du PC est considérée comme réalisée et n'est pas relancée.
J'avais écrit une usine à gaz pour bloquer l'extinction du PC jusqu'à la fin de la série anacron.
Edit2: j'ai retrouvé les liens où j'en parle :
Décalage possible de cron.daily cron.weekly et cron.monthly
Contrôle de l'arrêt du PC … mais c'était avec init.d

Dernière modification par Tawal (08-09-2024 08:05:47)


Comme la science n'est pas infuse, elle se diffuse.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !

Hors ligne

#4 08-09-2024 07:54:09

Croutons
Membre
Distrib. : Debian12
Noyau : Linux 6.1.0-13-amd64
(G)UI : Fluxbox(NakeDeb)
Inscription : 16-12-2016

Re : [anacron] mot clef de période "@weekly" non reconnu [Résolu]

Tawal a écrit :

Pour cron, il lui faut un jour dans la semaine pour l'exécution du script, disons lundi.
Si le PC est éteint le lundi entier et allumé que le mardi, il faudra attendre le lundi prochain pour que soit lancé le script par cron.



c'est une constatation ou c'est l'idée que tu te fais du truc?
ça me semble quand même un peu étrange comme comportement


-->les cahiers du debutant<--      WikiDF-->Découvrir les principales commandes Linux<-- 
L' expérience, c'est le nom que chacun donne à ses erreurs. Oscar Wilde

En ligne

#5 08-09-2024 08:12:16

Tawal
Membre
Distrib. : Debian Stable à jour
Noyau : amd64
(G)UI : Xfce
Inscription : 25-02-2021

Re : [anacron] mot clef de période "@weekly" non reconnu [Résolu]

C'est ce que j'avais constaté l'époque.
Et ça reste vrai pour cron.

Exemple : cron.weekly
Les scripts de ce dossier sont lancés par anacron avec une périodicité de 7 jours (pas une semaine délimitée par lundi et dimanche).
Quand anacron réalise sa tâche (cron.weekly), il inscrit la date d'exécution dans le spool du job.
Il s'appuie sur cette date pour relancer la prochaine exécution.
Commençons par une exécution normale le lundi de cron.weekly.
Le lundi suivant, le PC est éteint et allumé que le mardi ==> cron.weekly sera lancé le mardi (écart 8 jours)
Le mardi suivant le Pc est éteint etc.

Comme la science n'est pas infuse, elle se diffuse.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !

Hors ligne

#6 09-09-2024 12:52:22

vv222
Administrateur
Distrib. : Debian Sid
(G)UI : sway
Inscription : 18-11-2013
Site Web

Re : [anacron] mot clef de période "@weekly" non reconnu [Résolu]

Tawal a écrit :

Pour cron, il lui faut un jour dans la semaine pour l'exécution du script, disons lundi.
Si le PC est éteint le lundi entier et allumé que le mardi, il faudra attendre le lundi prochain pour que soit lancé le script par cron.


Ce n’est pas le cas si anacron est installé. C’est justement son rôle de s’assurer que les tâches cron soient lancées même si le créneau original a été loupé pour une raison ou une autre.


Jouer sous Debian ? Facile !

Ceterum censeo Barum esse delendam

Hors ligne

#7 09-09-2024 20:04:20

Tawal
Membre
Distrib. : Debian Stable à jour
Noyau : amd64
(G)UI : Xfce
Inscription : 25-02-2021

Re : [anacron] mot clef de période "@weekly" non reconnu [Résolu]

@vv22 :
Oui je suis d'accord avec ça.
Mais comme je l'explique, anacron inscrit la date d'exécution de la tâche dans le spool de la tâche.
Puis pour relancer "dans les temps" cette même tâche, anacron s'appuie sur la date inscrite dans le spool de la tâche.
Et donc, si il y eu un décalage, il n'est jamais rattrapé.
C'est pour ça qu'à l'époque j'avais écrit un script qui modifiait la date du spool pour rectifier le décalage.

Comme la science n'est pas infuse, elle se diffuse.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !

Hors ligne

#8 10-09-2024 18:23:55

Croutons
Membre
Distrib. : Debian12
Noyau : Linux 6.1.0-13-amd64
(G)UI : Fluxbox(NakeDeb)
Inscription : 16-12-2016

Re : [anacron] mot clef de période "@weekly" non reconnu [Résolu]

trouvé d’où vient le soucis cool
c'est dans le manpage en fait, c'est précisé que la period_name peut être seulement montly

man anacrontab a écrit :

The period_name can only be set to monthly at the present time.  This  will
       ensure jobs are only run once a month, no matter the number of days in this month, or the previous month.



nan en vrai je fais le malin mais j'avais pas vu big_smile
j'ai trouvé en lisant un post
https://askubuntu.com/questions/511337/ … acron-task

Dernière modification par Croutons (10-09-2024 18:25:33)


-->les cahiers du debutant<--      WikiDF-->Découvrir les principales commandes Linux<-- 
L' expérience, c'est le nom que chacun donne à ses erreurs. Oscar Wilde

En ligne

#9 10-09-2024 22:13:06

Tawal
Membre
Distrib. : Debian Stable à jour
Noyau : amd64
(G)UI : Xfce
Inscription : 25-02-2021

Re : [anacron] mot clef de période "@weekly" non reconnu [Résolu]

merci.gif Croutons.
Je passe en [Résolu] et je m'accommode de la périodicité d'un mois.

Comme la science n'est pas infuse, elle se diffuse.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !

Hors ligne

Pied de page des forums