Crontab toutes les x minutes ... réellement. [Résolu/Fermé]

Signaler
Messages postés
42
Date d'inscription
lundi 11 janvier 2016
Statut
Membre
Dernière intervention
26 février 2016
-
Messages postés
42
Date d'inscription
lundi 11 janvier 2016
Statut
Membre
Dernière intervention
26 février 2016
-
Bonjour,

Je voudrais lancer une tâche toute les (par exemple) 23 minutes.
Sauf qu'avec cron, si je fais */23, ça va lancer à h:23 h:46, et on recommence à l'heure suivante h+1:23 h+1:46, etc..

Ce que je voudrais :
h:23, h:46, h+1:09, h+1:32 .. etc... vraiment toutes les 23 minutes quoi :)

Quelqu'un saurait comment faire ça ?

1 réponse

Salut,

Normalement
*/23
ou
0/23
devrait s'exécuter toutes les 23 minutes.
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
42
Date d'inscription
lundi 11 janvier 2016
Statut
Membre
Dernière intervention
26 février 2016
3 > UnGars
Oui, il y a des valeurs qui "fonctionnent" .. les diviseurs de 60 :)
Mais déjà 7, ça marche plus (comme je le voudrais)
Messages postés
42
Date d'inscription
lundi 11 janvier 2016
Statut
Membre
Dernière intervention
26 février 2016
3
Qu'on se comprenne bien : je cherche une solution, mais pas forcément utilisant cron :)
>
Messages postés
42
Date d'inscription
lundi 11 janvier 2016
Statut
Membre
Dernière intervention
26 février 2016

Un script alors ?

Une boucle infinie (
while true
), ta commande, une pause (
sleep 23m
) et roulez jeunesse ;-)
Messages postés
20670
Date d'inscription
mercredi 18 avril 2007
Statut
Contributeur
Dernière intervention
7 avril 2021
1 598
un while true wait,c'est juste horrible en terme de ressource (et si le script freeze, c'est mort).
C'est grave si ça se lance toutes les 24 minutes au lieux des 23 (pour des questions de régularité)?
combien de temps mets le script à s’exécuter quand il se lance ?
si à minuit on repasse à 0:00 et 0:23 quelque soit l'heure de dernière exécution, c'est grave ?

En fonction des réponses précédentes, je cronerais le script toutes les minutes, par contre, en début de script je testerais le nombre de minutes écoulées depuis 0:00.
Si ce nombre est divisible par le paramètre (23), on exécute, sinon,
exit 0

d’où les questions sur la gestion du changement de jour.. 24 minutes permet de retomber sur ses pieds, avec 60 exécutions, avec 23 minutes, on aura 62 executions, et le dernier écart sera un peu plus court.
Messages postés
42
Date d'inscription
lundi 11 janvier 2016
Statut
Membre
Dernière intervention
26 février 2016
3
J'ai trouvé une solution très proche, et non, la régularité extrême n'est pas une obligation.
* * * * * [ $(( $(date +%s) / 60 % 23 )) -eq 0 ] && ma_commande

du coup, on teste à partir du 1/01/1970, et même à minuit, on ne revient pas à h+23' :)
Seul truc : on ne décide pas de la première exécution .. enfin pas vraiment ;)

Merci à tous pour les pistes évoquées :)