Problème de codage d'une crontab

Problème de codage d'une crontab - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 13-09-2017 à 09:09:04    

Bonjour,
 
J'ai un souci pour coder une crontab quelque chose qui pourtant me paraissait semble.  :pfff:  
 
Je veux exécuter une commande, chaque second dimanche du mois à 02h05
 
Voilà comment j'avais codé ça :
5 2 8-14 3,6,9,12 0  
 
Mais en fait, le script s’exécute du 8 à 14 ET tous les dimanches.  :(  
Je pensais que c'était un opérateur ET entre 8-14 et 0, mais c'est OU.
 
Savez vous comment coder "deuxième dimanche" ?
 
Meric  :jap:

Reply

Marsh Posté le 13-09-2017 à 09:09:04   

Reply

Marsh Posté le 13-09-2017 à 09:18:37    

salut,
 
ça ne se "code" pas en cron, il faut le scripter.
c'est une FAQ, tu devrais rapidement trouver une solution après quelques recherches sur le net.
 
tiens-nous au courant.

Reply

Marsh Posté le 13-09-2017 à 09:28:23    

Merci, il me semblait bien que ce n'était pas "codable" en cron.
 

Reply

Marsh Posté le 13-09-2017 à 09:29:18    


Tous les derniers dimanches du mois :
Première solution : comparer tous les dimanches avec celui de la semaine d'après.
 0 0 * * 0 [ `/bin/date +\%d` -gt `/bin/date +\%d -d "7 day"` ]

Reply

Marsh Posté le 13-09-2017 à 10:50:31    

« tous les dimanches, comparer la date avec la date de la semaine d'après » ?
il y a peu de chances qu'un jour la date soit même égale à celle de la semaine d'après ! :)
 
ça n'a l'air de rien, mais c'est pas si facile d'expliquer à un ordinateur ce que nous visualisons intuitivement. :/
et expliquer l'algorithme sans donner le code n'est pas facile non plus. :(
 
de mon côté, je me suis basé sur le numéro du jour du premier jour du mois.
il y a alors trois cas à prendre en considération :
- le numéro du premier jour du mois est inférieur au numéro du jour cible
   => référence = numJourCible - numPremJourMois
- le numéro du premier jour du mois est supérieur au numéro du jour cible
   => référence = nbJoursSemN - numPremJourMois + numJourCible
- le numéro du premier jour du mois est égal au numéro du jour cible
   => référence = 0
 
ensuite, je fais d'autres calculs...
 
tout ça pour dire, que c'est pas si simple.

Reply

Marsh Posté le 29-01-2018 à 09:00:36    

if [[ ${madate:8:2} -ge 8 && ${madate:8:2} -le 14 && $(date -d $madate +'%w') -eq 0 ]]; then echo "ok"; else echo "ko";fi
 
Normalement, ca devrait te dire si tu es le 2e dimanche du mois, non ?


---------------
Burn the museum, wipe your ass with the Mona Lisa, this way, at least, God will know your name.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed