#1 Le 02/05/2022, à 11:07
- OOfanch
Fréquence crontab
Bonjour,
Je voudrai lancer un cron toutes les 12h25 (période de la marée). Je sais le faire à des heures fixes mais la je ne vois pas comment faire.
Est-ce que vous auriez un idée?
Merci de votre aide,
François
Hors ligne
#2 Le 02/05/2022, à 11:18
- erresse
Re : Fréquence crontab
Bonjour,
Tu pourrais essayer de donner la période en minutes : */745 (=12h25) en premier paramètre.
Sous toute réserve, je ne sais pas si ça peut marcher, mais ça ne coûte rien de faire l'essai...
Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois le problème solutionné, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.
Hors ligne
#3 Le 02/05/2022, à 11:59
- bruno
Re : Fréquence crontab
Bonjour,
Je ne pense pas que l'idée d'eresse fonctionne car le champ des minutes n'accepte en principe que des valeurs de 0 à 59
J'ai beau chercher je ne vois pas comment faire cela uniquement avec cron. À mon avis il faut passer par un script qui vérifie sa dernière date d'exécution.
Sinon, c'est possible avec un timer systemd puisque là tu peux spécifier les délais comme tu veux.
#4 Le 02/05/2022, à 12:20
- credenhill
Re : Fréquence crontab
hello
sans cron, le script peut se relancer
...
# à la fin
at -f script now+745 min
Dernière modification par credenhill (Le 02/05/2022, à 12:20)
Hors ligne
#5 Le 02/05/2022, à 17:59
- erresse
Re : Fréquence crontab
Je ne pense pas que l'idée d'eresse fonctionne car le champ des minutes n'accepte en principe que des valeurs de 0 à 59
J'ai lancé un essai mais je n'en ai pas encore le résultat, donc je ne peux rien affirmer, mais dans ce cas, il ne s'agit pas d'indiquer une minute précise (comprise entre 0 et 59), mais un nombre de minutes. Je pense que ça peut être accepté...
Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois le problème solutionné, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.
Hors ligne
#6 Le 02/05/2022, à 18:10
- Watael
Re : Fréquence crontab
salut,
The time and date fields are:
field allowed values ----- -------------- minute 0-59
ensuite,
lancer un cron toutes les 12h25
à partir de quand ?
cron démarre en même temps que la machine, pas en fonction de la Nouvelle Lune.
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#7 Le 02/05/2022, à 21:56
- OOfanch
Re : Fréquence crontab
A partir d'une heure de marée basse à Brest.
Hors ligne
#8 Le 02/05/2022, à 22:04
- iznobe
Re : Fréquence crontab
Bonjour , il vaudrait mieux calculer les heures des marées en fonction des jours dans un autre script , qui apelle lorsque c' est la bonne heure correspondante au jour , le script en question du coup , enfin c' est mon avis , sinon je ne vois pas d' autre possibilité pour que ce soit effectivement fiable .
2eme possibilité recupere les heures de marée basse de brest sur un site qui les donne et enclencher au bon moment , mais ca revient pratiquement au meme sauf que c ' est certainement plus compliqué en fait , plus de chose a gerer dans le script .
Il faut evidemment laissé tomber cron , il ne peut pas s ' adapter sur une heure precise , il ne gere que des intervalles de temps .
Dernière modification par iznobe (Le 02/05/2022, à 22:13)
retour COMPLET et utilisable de commande
MSI Z490A-pro , i7 10700 , 32 GB RAM .
Hors ligne
#9 Le 02/05/2022, à 22:06
- Watael
Re : Fréquence crontab
même problème : ça n'entre pas dans les paramètres de cron.
--
« ben, oui ! "Zézette épouse X", ça n'entre pas dans les cases. »
Dernière modification par Watael (Le 02/05/2022, à 22:07)
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#10 Le 03/05/2022, à 06:26
- bruno
Re : Fréquence crontab
Il faut evidemment laissé tomber cron , il ne peut pas s ' adapter sur une heure precise , il ne gere que des intervalles de temps .
Euh… c'est exactement l'inverse. cron est conçu pour exécuter des tâches à des dates et heures précises et non à des intervalles de temps paramétrables (cf man5 crontab).
--
De toute façon le problème est biaisé dès le départ puisque les marées ne se produisent pas à intervalles réguliers. Il suffit de regarder l’intervalle entre deux pleines mers par exemple ici : https://maree.info/82. On voit bien que ce n'est pas une constante. D'ailleurs le calcul des marées est assez complexe.
Je ne sais pas ce que veux faire OOfanch mais les tâches planifiées (cron ou timer systemd) ne sont clairement pas adaptées à la gestion de ce type d'information.
#11 Le 03/05/2022, à 06:32
- Tawal
Re : Fréquence crontab
Hello,
"De toute façon le problème est biaisé dès le départ puisque les marées ne se produisent pas à intervalles réguliers."
C'est ce que j'allais dire,l'intervalle de 12h25 entre marées est une moyenne.
Donc un décalage se ferait voir assez vite, pour au final tomber complètement à coté !
Le savoir n'a d’intérêt que si on le transmet.
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
#12 Le 03/05/2022, à 07:13
- iznobe
Re : Fréquence crontab
Bonjour , il est possible , via cron de lancer une tache toutes les 12 h et 25 min en faisant comme cela :
*/25 */12 * * * /mon_script
.
Cependant ca ne sera evidemment pas calé sur les heures de marée puis que le " compteur de temps " demarre au boot de l' ordinateur .
Avec cron , on peut utiliser des heures fixes evidemment ( je me suis mal exprimé dans mon message precedent ) , ou un systeme d ' intervalle de temps regulier , mais on ne peut pas combiner les 2 , ou alors je ne sais pas faire .
De plus si on reboot l' ordi , l ' intervalle de temps est reset , le compteur de temps est reset , donc forcement plus rien ne va .
Dernière modification par iznobe (Le 03/05/2022, à 07:18)
retour COMPLET et utilisable de commande
MSI Z490A-pro , i7 10700 , 32 GB RAM .
Hors ligne
#13 Le 03/05/2022, à 07:41
- bruno
Re : Fréquence crontab
@iznobe as-tu testé ? Ce que tu proposes exécutera le script toutes le douze heures à la 25ème minute (0h25 et 12h25 par exemple) et non pas toutes les 12h et 25 minutes.
Et j'insiste cron ne permet pas de définir un intervalle de temps entre deux tâches mais uniquement des dates et heures d'exécution :
Commands are executed by cron when the minute, hour, and month of year fields match the current time, and when at least one of the
two day fields (day of month, or day of week) match the current time
#14 Le 03/05/2022, à 07:48
- iznobe
Re : Fréquence crontab
@bruno , j ' avais justement un doute pour les 12 heures et 25 min , je n' ai pas testé .
Et j'insiste cron ne permet pas de définir un intervalle de temps entre deux tâches mais uniquement des dates et heures d'exécution.
Ba je sais pas , mais moi , si j' ecris
*/5 * * * * /mon_script
et que mon_script s ' execute toute les 5 minutes , j ' apelle ca un intervalle de temps et pas une heure fixe . peut etre que ce n' est pas le bon mot " intervalle " , mais naturellement , il ne m' en vient pas d' autre .
Apres je concois bien , que cron calcule une heure fixe en faisant heure execution precedente + 5 min , donc execution de mon_script a H + 5 pour la prochaine execution , mais coté humain , mon_script va s ' executer a un intervalle de temps regulier .
Dernière modification par iznobe (Le 03/05/2022, à 07:55)
retour COMPLET et utilisable de commande
MSI Z490A-pro , i7 10700 , 32 GB RAM .
Hors ligne
#15 Le 03/05/2022, à 08:00
- bruno
Re : Fréquence crontab
C'est ton interprétation, et même si le résultat est effectivement une exécution toutes les 5 minutes, elle est fausse.
L'interprétation correcte de la syntaxe de crontab (telle qu'expliquée dan le man) est que script s'exécute à date et heures fixes aux minutes 0,5,10, etc. de chaque heure, chaque jour du mois, chaque mois de l'année et chaque jour de la semaine.
Rien dans cron ne permet de définir un intervalle de temps entre deux exécutions et toutes les documentations officielles expliquent bien que les tâches s'exécutent à un moment précis défini dans les champs du crontab.
Note bien que si c'était possible il n'y aurait aucune difficulté à avoir une tâche cron toutes les 75 secondes ou toutes les 85 minutes par exemple.
Dernière modification par bruno (Le 03/05/2022, à 08:04)
#16 Le 03/05/2022, à 08:24
- OOfanch
Re : Fréquence crontab
iznobe a écrit :Il faut evidemment laissé tomber cron , il ne peut pas s ' adapter sur une heure precise , il ne gere que des intervalles de temps .
Euh… c'est exactement l'inverse. cron est conçu pour exécuter des tâches à des dates et heures précises et non à des intervalles de temps paramétrables (cf man5 crontab).
--
De toute façon le problème est biaisé dès le départ puisque les marées ne se produisent pas à intervalles réguliers. Il suffit de regarder l’intervalle entre deux pleines mers par exemple ici : https://maree.info/82. On voit bien que ce n'est pas une constante. D'ailleurs le calcul des marées est assez complexe.
Je ne sais pas ce que veux faire OOfanch mais les tâches planifiées (cron ou timer systemd) ne sont clairement pas adaptées à la gestion de ce type d'information.
En effet les marées ne se produisent pas à des temps réguliers, c'était une première approche simplifiée pour avoir un résultat rapide.
L'objectif est d'afficher sur une page web le coefficient du moment.
J'ai copié à la main dans un csv les données du site: http://maree.info/82
J'avais dans une première approche conservé que les dates et les coeffs
26/04/2022 54 60
27/04/2022 66 71
28/04/2022 76 80
29/04/2022 84 86
30/04/2022 87 88
Je lis dans le csv les coefficient. Je pourrais rajouter dans ce csv les heures des marées correspondants aux coeffs. Rajouter dans mon script l'heure de la prochaine marée, calculer le nombre de minutes correspondant et faire ce que proposait credenhill:
hello
sans cron, le script peut se relancer... # à la fin at -f script now+745 min
ça vous parait adapté?
Merci en tous cas pour votre aide.
François
Dernière modification par OOfanch (Le 03/05/2022, à 08:48)
Hors ligne
#17 Le 03/05/2022, à 08:55
- bruno
Re : Fréquence crontab
L'objectif est d'afficher sur une page web le coefficient du moment.
#18 Le 03/05/2022, à 10:01
- OOfanch
Re : Fréquence crontab
Il y a cette possibilité mais je ne gère pas le site web, il est déjà construit.
Je dois envoyer des fichiers csv sur un site ftp. Ces fichiers sont ensuite lus (je n'ai pas la main sur cette partie) et affichés sur le site.
Hors ligne
#19 Le 03/05/2022, à 13:16
- diesel
Re : Fréquence crontab
Comme début de solution, je peux te proposer ça
w3m https://marine.meteoconsult.fr/meteo-marine/horaires-des-marees/brest-4/mai-2022 >toto.txt
Dans le fichier toto.txt, tu vas retrouver ça :
...
mardi 3
Marée basse 01h23 1.50m
Marée haute 07h15 6.60m
81
Marée basse 13h35 1.65m
Marée haute 19h26 6.60m
78
Lune
Premier croissant de lune
Saint
Saint Philippe
Lever 06h55
14h39min
+3 min
Coucher 21h34
...
Avec un petit script, on peut trier...
Bon, c'est vrai, je n'ai pas utilisé cron...
Amicalement.
Jean-Marie
Dernière modification par diesel (Le 03/05/2022, à 13:26)
Je déteste qu'on cherche à me faire passer pour un con, j'y arrive déjà très bien tout seul.
Le mort, il sait pas qu'il est mort ; c'est pour les autres que c'est dur.................... Pour les cons, c'est pareil.
Hors ligne
#20 Le 03/05/2022, à 14:22
- Watael
Re : Fréquence crontab
Je lis dans le csv les coefficient. Je pourrais rajouter dans ce csv les heures des marées correspondants aux coeffs. Rajouter dans mon script l'heure de la prochaine marée, calculer le nombre de minutes correspondant et faire ce que proposait credenhill:
credenhill a écrit :hello
sans cron, le script peut se relancer... # à la fin at -f script now+745 min
ça vous parait adapté?
non, puisque tu dois envoyer un fichier csv qui contient (d'après ce que tu nous montres) 5 jours de prévisions, il faut envoyer une mise à jour, à la même fréquence que tu collectes les informations, à minuit.
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#21 Le 03/05/2022, à 15:22
- erresse
Re : Fréquence crontab
En-dehors de toute considération d'horaires des marées (ce n'était pas pour moi le point à vérifier), cet essai lancé hier :
*/70 * * * * XDG_RUNTIME_DIR=/run/user/1000 /usr/bin/echo "coucou" >> /home/user/Bureau/trace 2>&1
a parfaitement fonctionné et la commande s'est bien exécutée X fois, toutes les 1h10min.
Je suis donc en mesure de confirmer après test que la valeur que l'on peut indiquer pour un délai de répétition (un nombre de minutes en l'occurrence) n'est absolument pas cantonnée à une plage de 0-59.
CQFD
Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois le problème solutionné, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.
Hors ligne
#22 Le 03/05/2022, à 15:33
- bruno
Re : Fréquence crontab
Ah ben ça alors !
Ce ne serait pas la première fois que le comportement d'une application est en contradiction avec sa page de man (cf. #6), mais si cela fonctionne réellement je suis sur le cul !
EDIT :
Bon j'ai testé aussi avec */70 et cela ne fonctionne pas. Cela ne provoque pas d'erreur mais la tâche est exécutée toutes les heures et non toutes les 1 heure et 10 minutes.
J'aurai été très étonné que cela fonctionne sans être documenté nulle part.
Dernière modification par bruno (Le 03/05/2022, à 19:14)
#23 Le 03/05/2022, à 15:37
- OOfanch
Re : Fréquence crontab
Comme début de solution, je peux te proposer ça
w3m https://marine.meteoconsult.fr/meteo-marine/horaires-des-marees/brest-4/mai-2022 >toto.txt
Dans le fichier toto.txt, tu vas retrouver ça :
... mardi 3 Marée basse 01h23 1.50m Marée haute 07h15 6.60m 81 Marée basse 13h35 1.65m Marée haute 19h26 6.60m 78 Lune Premier croissant de lune Saint Saint Philippe Lever 06h55 14h39min +3 min Coucher 21h34 ...
Avec un petit script, on peut trier...
Bon, c'est vrai, je n'ai pas utilisé cron...
Amicalement.
Jean-Marie
J'ai déjà stocké les coeffs à la main dans un csv pour l'année, donc je n'ai pas vraiment besoin de cette partie de récupération de la donnée.
Mais merci beaucoup pour cette commande que je ne connaissais pas et qui me servira.
Et effectivement je pourrai baser mon code sur cette lecture afin d'éviter de récupérer les données à la main à l'avenir.
Merci!
Hors ligne
#24 Le 03/05/2022, à 15:40
- OOfanch
Re : Fréquence crontab
non, puisque tu dois envoyer un fichier csv qui contient (d'après ce que tu nous montres) 5 jours de prévisions, il faut envoyer une mise à jour, à la même fréquence que tu collectes les informations, à minuit.
Pardon ce n'était peut-être pas très clair, j'ai enregistré les données de l'année dans un csv mais je n'envoie les coefficient que un par un.
Hors ligne
#25 Le 03/05/2022, à 15:42
- OOfanch
Re : Fréquence crontab
En-dehors de toute considération d'horaires des marées (ce n'était pas pour moi le point à vérifier), cet essai lancé hier :
*/70 * * * * XDG_RUNTIME_DIR=/run/user/1000 /usr/bin/echo "coucou" >> /home/user/Bureau/trace 2>&1
a parfaitement fonctionné et la commande s'est bien exécutée X fois, toutes les 1h10min.
Je suis donc en mesure de confirmer après test que la valeur que l'on peut indiquer pour un délai de répétition (un nombre de minutes en l'occurrence) n'est absolument pas cantonnée à une plage de 0-59.
CQFD
Merci pour le test !
Hors ligne