Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 01/05/2020, à 11:01

Christophe C

anacron et délais

Anacron est lancé chaque jour au démarrage, ou si la machine ne s'est pas éteinte, il est lancé par cron 1 fois par jour (à 7H30, je crois).

Il lance des tâches / logiciels / commandes en fonction d'un paramétrage qui est dans anacrontab, et qui est simple :

délai en jours        attente-en-Mn     nom      commande

Quand on va sur le web on trouve que le délai en jour peut être exprimé en nombre simple, mais aussi en code "@weekly ; @daily ; @monthly ; @yearly". Ce n'est pas dans le man, malheureusement.
J'ai même trouvé @hourly, ce qui n'est logiquement pas possible, puisque anacron n'est pas un daemon.

Il existe une option anacron -T qui teste la syntaxe et indique si on s'est trompé. Or elle laisse passer  @monthly et @yearly, mais elle rejette @weekly et @daily.

Savez-vous si c'est anacron -T qui est buggé, ou les sites qui parlent de @weekly et @daily racontent-ils des bêtises ? Les options @weekly et @daily sont-elles valides, ou invalides ?

j'ai bien tenté un anacron -fn pour forcer le lancement : je me disais que si @daily était interdit, cela ne se lancerait pas. Mais en fait, il accepte même @toto smile
Bon, j'ai mis un test avec @daily, donc on verra demain, mais si quelqu'un commaitle sujet ...

Dernière modification par Christophe C (Le 01/05/2020, à 11:05)


BountySource - Faite un petit don, ponctuel ou récurent, pour soutenir le développement de XFCE.
Timeshift - Sécurité : pensez à paramétrer des points de restauration système.
Euclide : « Ce qui est affirmé sans preuve peut être nié sans preuve ».

Hors ligne

#2 Le 03/05/2020, à 06:19

Vobul

Re : anacron et délais

>  puisque anacron n'est pas un daemon.

Euh si en fait.

> Les options @weekly et @daily sont-elles valides, ou invalides ?

Je crois que tu confonds anacron et cron qui sont deux logiciels différents.

Si tu mets 1 dans la première colonne ça tourne tous les jours.

https://www.digitalocean.com/community/ … -with-cron
https://askubuntu.com/questions/848610/ … nd-anacron


Vobul
Utilisez le retour utilisable de commandes !!!
J'aime la langue française, mais je parle franglais, deal with it.
RTFM

Hors ligne

#3 Le 03/05/2020, à 07:53

Christophe C

Re : anacron et délais

Vobul a écrit :

>  puisque anacron n'est pas un daemon.

Euh si en fait.

Non, anacron n'est pas un daemon. Il est lancé par cron chaque jour (en tous cas dans la config debian / ubuntu), ET par l'init du système à chaque démarrage, mais ensuite il ne tourne pas en mémoire. Pour t'en convaincre :

ps -e | grep cron renvoi bien un processus (cron est un daemon qui tourne en fond de tâche).

ps -e | grep anacron ne renvoi rien. Anacron n'est pas en mémoire en permanence.

Vobul a écrit :

> Les options @weekly et @daily sont-elles valides, ou invalides ?

Je crois que tu confonds anacron et cron qui sont deux logiciels différents.

Je ne confond rien du tout, j'indique que moult sites disent que @daily et @weekly fonctionnent avec anacron. Et j'indiquais que anacron -T (qui teste la syntaxe) les rejette. D'où ma question sur le fait de savoir si anacron -T est bugué, ou si ces sites racontent des bêtises.

Réponse : anacron -T est un test qui est bugué [en fait non - voir plus bas]. Pas pu tester @weekly, mais @daily marche parfaitement ce matin chez moi dans anacrontab. Pas très important, mais c'est une bizarrerie. Je me demande ce qu'il en est pour @weekly.

Vobul a écrit :

Si tu mets 1 dans la première colonne ça tourne tous les jours.

Oui, évidement.

Dernière modification par Christophe C (Le 04/05/2020, à 07:24)


BountySource - Faite un petit don, ponctuel ou récurent, pour soutenir le développement de XFCE.
Timeshift - Sécurité : pensez à paramétrer des points de restauration système.
Euclide : « Ce qui est affirmé sans preuve peut être nié sans preuve ».

Hors ligne

#4 Le 03/05/2020, à 08:04

Vobul

Re : anacron et délais

Non, anacron n'est pas un daemon.

Au temps pour moi, j'ai lu que ça l'était sans vérifier. Bon après vu qu'il est lancé par un daemon, il l'est indirectement quelque part ^^.

Un truc intéressant pour répondre à ta question, c'est de regarder le code source. @daily ou @weekly n'y apparait pas, par exemple : https://salsa.debian.org/search?utf8=%E … t_id=31867

Mais si ça semble fonctionner, tu peux faire un bug report pour que ce soit ajouté dans la doc et dans le code : https://salsa.debian.org/debian/anacron … c#L208-215

T'auras sûrement une réponse plus complète de la part des devs wink


Vobul
Utilisez le retour utilisable de commandes !!!
J'aime la langue française, mais je parle franglais, deal with it.
RTFM

Hors ligne

#5 Le 03/05/2020, à 08:11

Compte supprimé

Re : anacron et délais

Bonjour Christophe C,

Que penses-tu du système de timer de systemd ?
https://www.cerenit.fr/blog/systemd-tim … -crooners/
https://wiki.archlinux.org/index.php/Systemd/Timers

#6 Le 03/05/2020, à 08:28

Christophe C

Re : anacron et délais

@Vobul : intéressant, le test sur le code source.

de fait, on trouve :

    jr = obstack_alloc(&tab_o, sizeof(job_rec));
    if (!strncmp ("@monthly", periods, 7)) {
	jr->named_period = 1;
    } else if (!strncmp("@yearly", periods, 7)) {

mais pas @daily. Mais il marche.
En même temps, quand on force l'exécution immédiate avec un @toto, ça marche aussi (mais pas "toto", par contre). Donc peut être qu'un @n-importe-quoi lance l'opération définie tous les jours. Auquel cas, ce serait juste un fallback de l'erreur de syntaxe.

Je vais tester.

Dernière modification par Christophe C (Le 03/05/2020, à 08:29)


BountySource - Faite un petit don, ponctuel ou récurent, pour soutenir le développement de XFCE.
Timeshift - Sécurité : pensez à paramétrer des points de restauration système.
Euclide : « Ce qui est affirmé sans preuve peut être nié sans preuve ».

Hors ligne

#7 Le 03/05/2020, à 08:41

Christophe C

Re : anacron et délais

@Tamarou. Utiliser systemD pour remplacer cron, pourquoi pas. Si c'est plus puissant, je suppose que cela peut-être intéressant pour un professionnel.

Pour un particulier, aucun intérêt : trop puissant, trop complexe. Anacrontab, avec ses 4 colonnes (Période-en-jour ; délai-en-Mn ; Nom ; Commande) est beaucoup plus simple, et donc mieux adapté.

Ou alors, il faut un GUI totalement transparent, mais aller trafiquer systemD ne devrait pas non plus être trivial.

Donc à chaque outil son besoin et son type d'utilisateur, je dirais.


BountySource - Faite un petit don, ponctuel ou récurent, pour soutenir le développement de XFCE.
Timeshift - Sécurité : pensez à paramétrer des points de restauration système.
Euclide : « Ce qui est affirmé sans preuve peut être nié sans preuve ».

Hors ligne

#8 Le 03/05/2020, à 08:54

Compte supprimé

Re : anacron et délais

Savez-vous si c'est anacron -T qui est buggé, ou les sites qui parlent de @weekly et @daily racontent-ils des bêtises ? Les options @weekly et @daily sont-elles valides, ou invalides ?

Avec systemd c'est possible.

On crée un script qui fait ce que l'on veut. Puis un service qui l'utilise et enfin un timer qui le lance à la fréquence désirée, dont tous les jours ou toutes les semaines. On peut aussi indiquer si on doit rattraper ou non le retard si la machine n'était pas en fonctionnement au moment choisi pour l'exécution.

#9 Le 03/05/2020, à 10:00

grandtoubab

Re : anacron et délais

Ma petite synthèse sur anacron y compris la mise en place de hourly

https://bidouilledebian.wordpress.com/2 … e-insulte/


Linux tout seul sur HP Pavilion DV7 et Acer Aspire T650, Canon MG3650 en wifi
Debian 11 Bullseye Gnome/Xorg, Gnome/Wayland avec SDDM
https://bidouilledebian.wordpress.com/
ON M'A VU DANS LE VERCORS, SAUTER A L'ELASTIQUE..... J'AI DANS LES BOTTES DES MONTAGNES DE QUESTIONS....

Hors ligne

#10 Le 03/05/2020, à 10:22

Compte supprimé

Re : anacron et délais

#11 Le 03/05/2020, à 10:32

Christophe C

Re : anacron et délais

@grandtoubab : j'avoue ne pas comprendre l’intérêt. Certes tu peux lancer via un daemon quelconque (disons cron) le programme anacron toutes les heures, lequel lancera ensuite une commande quelconque.
Mais pourquoi ne pas tout simplement mettre ton script horaire dans cron ? Ou effectivement passer par systemd

Dernière modification par Christophe C (Le 03/05/2020, à 10:34)


BountySource - Faite un petit don, ponctuel ou récurent, pour soutenir le développement de XFCE.
Timeshift - Sécurité : pensez à paramétrer des points de restauration système.
Euclide : « Ce qui est affirmé sans preuve peut être nié sans preuve ».

Hors ligne

#12 Le 03/05/2020, à 16:56

Christophe C

Re : anacron et délais

Au fait, je ne trouve pas vraiment l'info : @monthly et @yearly lancent-il l'opération tous les 30 ou 365 J, ou la lance t'il le 1er jour du mois / de l'année ou le PC est lancé ?


BountySource - Faite un petit don, ponctuel ou récurent, pour soutenir le développement de XFCE.
Timeshift - Sécurité : pensez à paramétrer des points de restauration système.
Euclide : « Ce qui est affirmé sans preuve peut être nié sans preuve ».

Hors ligne

#13 Le 03/05/2020, à 17:10

Compte supprimé

Re : anacron et délais

Avec cron, je ne sais pas. Mais avec systemd, après avoir choisi une périodicité, on défini aussi le moment de l'exécution.
Tous les mois, le 25 à 17h12. 
Toutes les semaines, le jeudi à 5h

Dernière modification par Compte supprimé (Le 03/05/2020, à 17:11)

#14 Le 04/05/2020, à 07:19

Christophe C

Re : anacron et délais

Christophe C a écrit :

@Vobul : intéressant, le test sur le code source.

de fait, on trouve [dans le code d'anacron] :

   jr = obstack_alloc(&tab_o, sizeof(job_rec));
    if (!strncmp ("@monthly", periods, 7)) {
	jr->named_period = 1;
    } else if (!strncmp("@yearly", periods, 7)) {

mais pas @daily. Mais il marche.
En même temps, quand on force l'exécution immédiate avec un @toto, ça marche aussi (mais pas "toto", par contre). Donc peut être qu'un @n-importe-quoi lance l'opération définie tous les jours. Auquel cas, ce serait juste un fallback de l'erreur de syntaxe.

Je vais tester.

Bon, alors je confirme. Une périodicité = @toto ou @xxx lance anacron à chque démarrage (donc équivalent à périodicité = 0). C'est donc un simple fallback pour une erreur de syntaxe : au lieu de ne pas l'interpréter, anacron décide de l'interpréter comme signifiant "0" (la différence entre périodicité 0 et 1, c'est 0=lancement à chaque démarrage ; 1 = lancement 1 fois par jour).

Par contre une périodicité = toto (sans @) n'est pas interprétée : anacron ne lance rien.

Dernière modification par Christophe C (Le 04/05/2020, à 12:15)


BountySource - Faite un petit don, ponctuel ou récurent, pour soutenir le développement de XFCE.
Timeshift - Sécurité : pensez à paramétrer des points de restauration système.
Euclide : « Ce qui est affirmé sans preuve peut être nié sans preuve ».

Hors ligne

#15 Le 04/05/2020, à 08:15

grandtoubab

Re : anacron et délais

il faut encore et toujours répéter que anacron base sa périodicité sur la date et heure de démarrage de la machine

at /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
# périodicité , quelle minute
0 40	cron.hourly 	 run-parts --report /etc/cron.hourly
1 20	cron.daily	 run-parts --report /etc/cron.daily
7 30	cron.weekly	 run-parts --report /etc/cron.weekly
@monthly 50     cron.monthly     run-parts --report /etc/cron.monthly

hourly sera lancé 40 mn après le démarrage puis sur une périodicité d'1 heure
daily sera lancé 20 mn après le démarrage


l'horodatage du dernier lancement est inscrit ici
ls -alrt /var/spool/anacron

-rw------- 1 root root    9 avril 17 07:54 cron.monthly
-rw------- 1 root root    9 avril 29 06:42 cron.weekly
-rw------- 1 root root    9 mai    3 13:04 cron.hourly
-rw------- 1 root root    9 mai    4 09:06 cron.daily

Donc dans mon cas
- le dernier lancement weekly a été le mercredi 29 avril, le prochain sera mercredi 6 mai, 30 mn après le démarrage
- monthly sera lancé le 17 mai, 50 mn après le démarrage

c'est l'interet d'anacron sue un PC qui rédémarre fréquemment

c.f le journal

 journalctl | grep cron
mai 04 08:45:06 debian systemd[1]: Started Trigger anacron every hour.
mai 04 08:45:06 debian systemd[1]: Started Run anacron jobs.
mai 04 08:45:07 debian cron[4509]: (CRON) INFO (pidfile fd = 3)
mai 04 08:45:07 debian anacron[4506]: Anacron 2.3 started on 2020-05-04
mai 04 08:45:07 debian anacron[4506]: Will run job `cron.daily' in 20 min.
mai 04 08:45:07 debian anacron[4506]: Will run job `cron.hourly' in 40 min.
mai 04 08:45:07 debian anacron[4506]: Jobs will be executed sequentially
mai 04 08:45:07 debian cron[4509]: (CRON) INFO (Running @reboot jobs)
mai 04 09:05:07 debian anacron[4506]: Job `cron.daily' started
mai 04 09:05:07 debian anacron[15020]: Updated timestamp for job `cron.daily' to 2020-05-04
mai 04 09:06:45 debian anacron[4506]: Job `cron.daily' terminated (mailing output)
mai 04 09:25:07 debian anacron[4506]: Job `cron.hourly' started
mai 04 09:25:07 debian anacron[15826]: Updated timestamp for job `cron.hourly' to 2020-05-04
mai 04 09:25:37 debian anacron[4506]: Job `cron.hourly' terminated
mai 04 09:25:37 debian systemd[1]: anacron.service: Succeeded.
mai 04 09:25:37 debian anacron[4506]: Normal exit (2 jobs run)

Dernière modification par grandtoubab (Le 04/05/2020, à 08:32)


Linux tout seul sur HP Pavilion DV7 et Acer Aspire T650, Canon MG3650 en wifi
Debian 11 Bullseye Gnome/Xorg, Gnome/Wayland avec SDDM
https://bidouilledebian.wordpress.com/
ON M'A VU DANS LE VERCORS, SAUTER A L'ELASTIQUE..... J'AI DANS LES BOTTES DES MONTAGNES DE QUESTIONS....

Hors ligne

#16 Le 04/05/2020, à 09:06

Compte supprimé

Re : anacron et délais

Merci pour ces explications, je suis votre échange avec intérêt.

Il y a quelques années, j'ai eu besoin d'automatiser des tâches et j'ai essayé avec cron/anacron. Quand j'ai dû demander de l'aide, on m'a conseillé de faire avec systemd, ce que j'ai réalisé avec succès.
Au départ cela m'a semblé plus complexe, mais là, à vous lire, je trouve systemd plus clair, même s'il faut peut-être plus d'étapes.

Bonne journée à vous, on approche de la fin du confinement smile

#17 Le 04/05/2020, à 10:00

Watael

Re : anacron et délais

salut,

ce que j'ai réalisé avec succès

si tu t'en sers encore, tu peux nous montrer ?


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#18 Le 04/05/2020, à 10:16

Compte supprimé

Re : anacron et délais

@Watael
Il m'en reste un qui lance le script de sauvegarde de mes données plus quelques bricoles. Et oui, il fonctionne toujours.
Celui là est lancé depuis le compte utilisateur, pas en root.

Dernière modification par Compte supprimé (Le 04/05/2020, à 10:19)

#19 Le 04/05/2020, à 10:21

Watael

Re : anacron et délais

si t'en as, fais tourner.


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#20 Le 04/05/2020, à 10:30

Compte supprimé

Re : anacron et délais

Dans ~/.config/systemd/user

Le service : sauvegarde.service

[Unit]
Description=Sauvegarde
 
[Service]
Environment=DISPLAY=:0
ExecStart=/home/toto/sauvegarde.sh

Le timer : sauvegarde.timer

[Unit]
Description=Sauvegarde

[Timer]
OnCalendar=*-*-* 23:00:00
Persistent=false

[Install]
WantedBy=default.target

Pour le wantedby, je ne sais plus son utilité.

Persistent est à false pour éviter qu'il se lance le lendemain matin si j'arrête la machine volontairement avant son heure de déclenchement. En effet il fini par un shutdown now. C'est gênant quand on vient de démarrer smile

Bon, il faut aussi activer le timer avec systemctl enable.
Mais  Grandtoubab a écrit une page à ce sujet sur son site, et il y a pas mal d'autre doc, dont celle d'ici
https://doc.ubuntu-fr.org/creer_un_service_avec_systemd

Dernière modification par Compte supprimé (Le 04/05/2020, à 10:40)

#21 Le 04/05/2020, à 10:36

Watael

Re : anacron et délais

c'est coool.
merci. smile


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#22 Le 04/05/2020, à 12:02

Christophe C

Re : anacron et délais

@grandtoubab : non, ou alors tu n'es pas clair. Il n'y a pas de @hourly, ou @daily ou @weekly dans anacron.
Ce sont des macro de cron. Et cron peut lancer anacron. mais anacron tout seul ne fait pas ce que tu dis.

En particulier tu indiques :

hourly sera lancé 40 mn après le démarrage puis sur une périodicité d'1 heure

Puis tu met comme code "0" et non @hourly, donc mieux vaux utiliser le bon terme (hourly existe - sur cron). Et non, anacron ne lancera rien toute les heures même si tu mets 0 dans ton anacrontab, car ce n'est pas un résident. Si cron lance anacron toutes les heures, pourquoi pas. Mais sinon : aucune chance.

Idem : tu parles de weekly, mais tu mets un code "7". Si on mets @weekly, c'est vu comme une erreur, et c'est lancé chaque jour (j'ai testé smile).

Dernière modification par Christophe C (Le 04/05/2020, à 12:11)


BountySource - Faite un petit don, ponctuel ou récurent, pour soutenir le développement de XFCE.
Timeshift - Sécurité : pensez à paramétrer des points de restauration système.
Euclide : « Ce qui est affirmé sans preuve peut être nié sans preuve ».

Hors ligne

#23 Le 04/05/2020, à 12:13

grandtoubab

Re : anacron et délais

Christophe C a écrit :

@grandtoubab : non, ou alors tu n'es pas clair. Il n'y a pas de @hourly, ou @daily ou @weekly dans anacron.
Ce sont des macro de cron. Et cron peut lancer anacron. mais anacron tout seul ne fait pas ce que tu dis.

En particulier tu indiques :

hourly sera lancé 40 mn après le démarrage puis sur une périodicité d'1 heure

Puis tu met comme code "0" et non @hourly, donc mieux vaux utiliser le bon terme (hourly existe - sur cron). Et non, anacron ne lancera rien toute les heures même si tu mets 0 dans ton anacrontab, car ce n'est pas un résident. Si cron lance anacron toutes les heures, pourquoi pas. Mais sinon : aucune chance.

Désolé de te contredire mais ça fonctionne comme je le décris, j'ai meme mis le trace des logs , je ne peux pas faire mieux pour t'expliquer .
Je suis très satisfait de fonctionnement d'anacron que tu n'arrives pas à distinguer de cron visiblement
Bon courage à toi pour creuser le sujet, pour moi tout va bien


Linux tout seul sur HP Pavilion DV7 et Acer Aspire T650, Canon MG3650 en wifi
Debian 11 Bullseye Gnome/Xorg, Gnome/Wayland avec SDDM
https://bidouilledebian.wordpress.com/
ON M'A VU DANS LE VERCORS, SAUTER A L'ELASTIQUE..... J'AI DANS LES BOTTES DES MONTAGNES DE QUESTIONS....

Hors ligne

#24 Le 04/05/2020, à 12:18

Christophe C

Re : anacron et délais

Tu ne dis pas sur quel point tu n'est pas d'accord.

Sur l'utilisation de @weekly, @daily, @hourly ?

Ou sur le fait que périodicité = 0 lance le prog toutes les heures ?

Sur le 1er point, je suis sur à 1000%, je sort d'un cycle de test : ça n'existe pas dans anacron (tout @quelque-chose - sauf @monthly et @yearly - est interprété comme périodicité = 0 => lancement à chaque démarrage).

Pour le point 2 (0 = lancement toutes les H, et pas seulement à chaque démarrage), je veux bien re-vérifier (je ne suis pas sur à 100%), mais je suis surpris.

Que contestes-tu ?

Dernière modification par Christophe C (Le 04/05/2020, à 12:23)


BountySource - Faite un petit don, ponctuel ou récurent, pour soutenir le développement de XFCE.
Timeshift - Sécurité : pensez à paramétrer des points de restauration système.
Euclide : « Ce qui est affirmé sans preuve peut être nié sans preuve ».

Hors ligne

#25 Le 04/05/2020, à 14:41

Christophe C

Re : anacron et délais

Je viens de tester la périodicité = 0.

Comme indiqué cela lance la programmation anacron a chaque démarrage du PC, mais ensuite : whalou. Pas de lancement toutes les heures. Ce qui est logique, car anacron ne réside pas en mémoire.
un cht'i test pour le confirmer : ps -e | grep anacron => nada.

Par contre un résident quelconque (cron, systemd, voir un script quelconque) peut très bien relancer anacron toutes les H, et là la périodicité = 0 lancera bien la programmation, puisque 0 signifie "à chaque démarrage". Si on redémarre anacron toutes les H (ou les 2 H), on applique la ligne et on la lance.

Mais sur mon ubuntu 20.04, "0" ne marche qu'au démarrage, pas toutes les H.

Dernière modification par Christophe C (Le 04/05/2020, à 14:57)


BountySource - Faite un petit don, ponctuel ou récurent, pour soutenir le développement de XFCE.
Timeshift - Sécurité : pensez à paramétrer des points de restauration système.
Euclide : « Ce qui est affirmé sans preuve peut être nié sans preuve ».

Hors ligne