cerhu > linux.debian.user.french

Raphaël POITEVIN (12/05/2020, 10h30)
Bonjour,

Comment programmer une tâche toutes les 75 h à la minute 12 ? L?objectif
étant d?exécuter la tâche tous les trois jours avec un décalage de 3 h
entre 9h et 18h, du lundi au vendredi.

Ma ligne :
12 9-18/75 * * 1-5 commande
Cependant la tâche s?est bien exécutée hier à 9h12 mais s?est réexécutée
ce matin même heure.

En vous remerciant.

Cordialement,
Pierre Malard (12/05/2020, 11h00)
Bonjour,

Ceci me semble normal à la lecture du « man » :
[?] Step values can be used in conjunction with ranges. Following a range
with ``/<number>'' specifies skips of the number's value
through the range. [?]
Si mon anglais n?est pas trop rouillé, « through the range » signifie « dans
la plage [de valeurs] ». Or dans ton cas tu lui indique qu?ildoit effectuer
la tâche dans le créneau 9h 18h toute les 78 h ? dans le créneau ! C?est un
peu étroit non ? ;-)

En plus il me semble que le système comprenant les astérisques et le notion
de date (@daily, @monthly, ?) il ne peut qu?y avoir un calcul dans la limite
de temps choisi. C?est-à-dire 60 mn dans l?heure, 24h dans la journée,
{28,29,30,31} jours dans le mois, ?
Toujours dans le « man », on peut lire dans les exemples :
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# m h dom mon dow usercommand
Ceci me semble clair, non ?

Du coup je ne vois pas bien comment effectuer le décalage de 3 heures cherché
avec le cron.

Désolé
[..]
l0f4r0 (12/05/2020, 11h00)
Bonjour,

Je pense que tu devrais t'inspirer de la discussion instructive suivante : [..]

Bien cordialement,
l0f4r0
Raphaël POITEVIN (12/05/2020, 11h10)
Pierre Malard <plm> writes:
> Toujours dans le « man », on peut lire dans les exemples :
> # Example of job definition:
> # .---------------- minute (0 - 59)
> # | .------------- hour (0 - 23)
> # | | .---------- day of month (1 - 31)
> # | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
> # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR
> sun,mon,tue,wed,thu,fri,sat
> # | | | | |
> # m h dom mon dow usercommand
> Ceci me semble clair, non ?


Je n?avais pas lu leman car le système n?a pas hurlé quand j?ai essayé
de lui metre des valeurs hors des bornes.
> Du coup je ne vois pas bien comment effectuer le décalage de 3 heures cherché
> avec le cron.


J?essaierai avec un sleep ou quelque chose comme ça.

Merci,
G2PC (12/05/2020, 12h30)
> J?essaierai avec un sleep ou quelque chose comme ça.

Quel intérêt de faire une tâche tous les 3 jours avec 3h de décalage sur
une plage horaire aussi large ?

Peut être faire un script qui s?exécute tous les jours à ce moment la,
voir même, toutes les heures.

Le script devra écrire un token quelque part, à vérifier. Si le token
existe, y mettre la date et l'heure voulue pour exécuter le script.

Une fois le script exécuté, supprimer le token.

Lors de la nouvelle tâche cron, si le token n'existe pas, recréer le
token pour dans 3 jours, avec une création aléatoire en ce qui concerne
l'heure, qui sera saisie dans le token.

Un truc dans le genre, non ?
Jean-Marc (12/05/2020, 13h10)
Tue, 12 May 2020 11:08:26 +0200
Raphaël POITEVIN <raphael.poitevin> écrivait :

salut,

> Je n?avais pas lu leman car le système n?a pas hurlé quand j?ai essayé
> de lui metre des valeurs hors des bornes.
> > Du coup je ne vois pas bien comment effectuer le décalage de 3 heures cherché
> > avec le cron.

> J?essaierai avec un sleep ou quelque chose comme ça.


Sinon, voir si systemd.timer peut offrir une solution.
Si ton système utilise systemd.

> Merci,
> --
> Raphaël
> [..]


Jean-Marc <jean-marc>
[..]
Raphaël POITEVIN (12/05/2020, 16h00)
G2PC <g2pc> writes:

> Quel intérêt de faire une tâche tous les 3 jours avec 3h de décalage sur
> une plage horaire aussi large ?


Si j?ai mis des heures de bornage, c?est pour respecter desheures de
bureau. Mon but est d?envoyer des mails de rappel à mon agencede
location afin qu?elle n?oublie pas de traiter mon dossier, mais à des
heures différentes.
> Peut être faire un script qui s?exécute tous les jours à ce moment la,
> voir même, toutes les heures.
> Le script devra écrire un token quelque part, à vérifier. Si le token
> existe, y mettre la date et l'heure voulue pour exécuter le script.
> Une fois le script exécuté, supprimer le token.
> Lors de la nouvelle tâche cron, si le token n'existe pas, recréer le
> token pour dans 3 jours, avec une création aléatoire en ce qui concerne
> l'heure, qui sera saisie dans le token.
> Un truc dans le genre, non ?


J?y rélféchirai. Mais bon, un peu trop de boulot pour quelque chose
d?aussi mineur. Je me contenterai de mettre */3 pour le jour et enverrai
toujours à la même heure.
Raphaël POITEVIN (12/05/2020, 16h00)
Jean-Marc <jean-marc> writes:
> Sinon, voir si systemd.timer peut offrir une solution.
> Si ton système utilise systemd.


À voir en effet. Espérant qu?on peut exécuter ceci en utilisateur non
privilégié.
Raphaël POITEVIN (12/05/2020, 16h10)
l0f4r0 writes:

> Je pense que tu devrais t'inspirer de la discussion instructive
> suivante
> : [..]


Merci, la piste avec at est intéressante.
Raphaël POITEVIN (12/05/2020, 18h10)
Finalement :
sleep $(($RANDOM%540)) && commande

Tous les 3 jours, on verra.

Raphaël

raphael.poitevin (Raphaël POITEVIN) writes:
[..]
Yves Rutschle (12/05/2020, 21h50)
> Je me contenterai de mettre */3 pour le jour et enverrai
> toujours à la même heure.


Personellement, je ferais un mix entre ta solution et celle
de G2PC: */3 pour lancer tous les 3 jours, puis le script
commence avec un

sleep rand(3*3600)

(en pseudo-Perl)

Comme ça tu envoie à une heure aléatoire sur une plage de
3 heures.

Y.
Yves Rutschle (12/05/2020, 22h00)
On Tue, May 12, 2020 at 06:04:00PM +0200, Raphaël POITEVIN wrote:
> sleep $(($RANDOM%540)) && commande


Bah, j'avais raté qu'il me restait un mail à lire dans le
fil. Désolé de la contribution redondante dans mon autre mail -_-

Y.
Sébastien NOBILI (19/05/2020, 14h50)
Bonjour,

Le 2020-05-12 15:56, raphael.poitevin a écrit :
> Jean-Marc <jean-marc> writes:
>> Sinon, voir si systemd.timer peut offrir une solution.
>> Si ton système utilise systemd.

> À voir en effet. Espérant qu?on peut exécuter ceci en utilisateur non
> privilégié.


Oui, on peut.

Tu décris ton timer dans le dossier
`~/.config/systemd/user/relance.timer`
Tu actives ton timer avec `systemctl --user enable relance.timer`

J'ai remplacé pas mal de tâches cron utilisateur par ce mécanisme, plus
souple dans
certains cas (possibilité de désactiver/réactiver le timer).

Sébastien
Raphaël POITEVIN (19/05/2020, 15h30)
Sébastien NOBILI <s-liste-debian-user-french> writes:
> Oui, on peut.
> Tu décris ton timer dans le dossier
> `~/.config/systemd/user/relance.timer`
> Tu actives ton timer avec `systemctl --user enable relance.timer`
> J'ai remplacé pas mal de tâches cron utilisateur par ce mécanisme,
> plus souple dans
> certains cas (possibilité de désactiver/réactiver le timer).


Merci, je retiens, ça peut me servir. Bon, pour le moment, je n?ai plus
besoin de la tâche, mais ce n?es pas dit que je n?y aipas recours de
nouveau.
k6dedijon (25/05/2020, 05h20)
Bonjour,
Désolé pour cette intervention tardive.
En reparcourant rapidement la présentation de "anacron", j'ai vu que l'on pouvait paramétrer le nombre de jours.
Cela ne permet peut-être pas 75h, mais 3 jours soit 72h.
Il se pourrait que les dernières versions puissent se paramétrer par heures.
De plus anacron me parait plus pratique que cron puisque en cas de panne, d'interruption diverse, il reprend le travail au point où il en était.

[..]
[..]
[..]

Bonne découverte
assis

----- Mail d'origine -----
De: Raphaël POITEVIN <raphael.poitevin>
À: debian-user-french
Envoyé: Tue, 19 May 2020 15:20:37 +0200 (CEST)
Objet: Re: Cron toutes les 75 h

Sébastien NOBILI <s-liste-debian-user-french> writes:
> Oui, on peut.
> Tu décris ton timer dans le dossier
> `~/.config/systemd/user/relance.timer`
> Tu actives ton timer avec `systemctl --user enable relance.timer`
> J'ai remplacé pas mal de tâches cron utilisateur par ce mécanisme,
> plus souple dans
> certains cas (possibilité de désactiver/réactiver le timer).


Merci, je retiens, ça peut me servir. Bon, pour le moment, je n?ai plus
besoin de la tâche, mais ce n?es pas dit que je n?y aipas recours de
nouveau.

Discussions similaires
cron toutes les 25 secondes

Cron m'envoie des messages toutes les minutes

cron toutes les 3 semaines

cron toutes les 30s ?


Fuseau horaire GMT +2. Il est actuellement 16h03. | Privacy Policy