Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Expert éminent Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    septembre 2005
    Messages
    3 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : septembre 2005
    Messages : 3 211
    Points : 7 509
    Points
    7 509

    Par défaut Cron job de 23h à 1h du matin

    Bonjour

    Existe-t-il une syntaxe en une ligne de cronjob qui permette d'exécuter une tâche le mercredi et le dimanche de 23h à 1h du matin toutes les demi-heures ? Si oui, laquelle ?

    Si le serveur est lancé dans cette période, admettons 23h12, s'exécute-t-il à 23h12 23h42 0h12 0h42 ou alors 23h30 0h00 0h30 ?

    Merci de votre attention.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.
    Votre problème est résolu ? Cliquez sur en bas de page.

    Linux, grep/sed/awk/xml... et autres fichiers plats, Java, C++

  2. #2
    Expert éminent Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    novembre 2010
    Messages
    2 550
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : novembre 2010
    Messages : 2 550
    Points : 6 849
    Points
    6 849

    Par défaut

    salut,

    Citation Envoyé par Flodelarab Voir le message
    Existe-t-il une syntaxe en une ligne de cronjob qui permette d'exécuter une tâche le mercredi et le dimanche de 23h à 1h du matin toutes les demi-heures ? Si oui, laquelle ?
    je dirais un truc dans ce style : */30 23,0,1 * * 6,7 (cf ici)

    Si le serveur est lancé dans cette période, admettons 23h12, s'exécute-t-il à 23h12 23h42 0h12 0h42 ou alors 23h30 0h00 0h30 ?
    pour le premier paramètre, on peut préciser explicitement 12/30 par exemple, on aura bien une exécution à 0:12, puis 0:42 etc.
    en revanche avec un wildcard */30 c'est une bonne question, souvent elle est tombée jamais je m'en souviens
    Avant donc que d'écrire, apprenez à penser.
    Selon que notre idée est plus ou moins obscure, l'expression la suit, ou moins nette, ou plus pure.
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément.
                                                        - Nicolas Boileau, L'Art poétique

  3. #3
    Expert éminent Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    septembre 2005
    Messages
    3 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : septembre 2005
    Messages : 3 211
    Points : 7 509
    Points
    7 509

    Par défaut

    pour le premier paramètre, on peut préciser explicitement 12/30 par exemple, on aura bien une exécution à 0:12, puis 0:42 etc.
    Quand je lui demande "0/30", il me renvoie cela:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    "/tmp/crontab.AvFsj5/crontab":26: bad minute
    errors in crontab file, can't install.
    Do you want to retry the same edit? (y/n)
    Pareil pour 1 ou 12.
    Il ne bronche pas si j'écris "*/30". (réussite sans erreur)


    C'est bien ce que je craignais, il faut 2 lignes.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.
    Votre problème est résolu ? Cliquez sur en bas de page.

    Linux, grep/sed/awk/xml... et autres fichiers plats, Java, C++

  4. #4
    Expert éminent Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    novembre 2010
    Messages
    2 550
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : novembre 2010
    Messages : 2 550
    Points : 6 849
    Points
    6 849

    Par défaut

    Citation Envoyé par Flodelarab Voir le message
    C'est bien ce que je craignais, il faut 2 lignes.
    c'est possible ouai, de ce que j'ai cru comprendre ça dépendrait aussi des version de cron selon l'OS, genre Debian qui intègre des améliorations par exemple, et y compris certaines versions qui comprennent une syntaxe du genre */30+12, étrange...
    Avant donc que d'écrire, apprenez à penser.
    Selon que notre idée est plus ou moins obscure, l'expression la suit, ou moins nette, ou plus pure.
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément.
                                                        - Nicolas Boileau, L'Art poétique

  5. #5
    Expert éminent Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    septembre 2005
    Messages
    3 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : septembre 2005
    Messages : 3 211
    Points : 7 509
    Points
    7 509

    Par défaut

    Bravo !

    Debian comprend. Par contre, vim pas du tout. Toute la coloration de la ligne disparaît après "+".

    [edit]Ah ben non. La tache est envoyé à 0 et à 12. [/edit]
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.
    Votre problème est résolu ? Cliquez sur en bas de page.

    Linux, grep/sed/awk/xml... et autres fichiers plats, Java, C++

  6. #6
    Expert éminent Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    septembre 2005
    Messages
    3 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : septembre 2005
    Messages : 3 211
    Points : 7 509
    Points
    7 509

    Par défaut

    En fait, wikipedia est assez clair:
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.
    Votre problème est résolu ? Cliquez sur en bas de page.

    Linux, grep/sed/awk/xml... et autres fichiers plats, Java, C++

  7. #7
    Expert éminent Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    novembre 2010
    Messages
    2 550
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : novembre 2010
    Messages : 2 550
    Points : 6 849
    Points
    6 849

    Par défaut

    Citation Envoyé par Flodelarab Voir le message
    En fait, wikipedia est assez clair:
    eh ouai, mais si t'as un /5 au lieu de /30 par exemple tout ce qui est dans l'intervalle 0-12 passe à la trappe, c'est pas beaucoup plus satisfaisant au final

    la seule solution que je vois c'est lors de l'exécution du script de gérer un fichier contenant l'offset/la date de dernière exécution, c'est déléguer à l'appli la bonne heure d'exécution, mais au moins on est sûr du résultat, derrière tu peux mettre un * pour lancer le script toute les minutes sans que ça gêne
    Avant donc que d'écrire, apprenez à penser.
    Selon que notre idée est plus ou moins obscure, l'expression la suit, ou moins nette, ou plus pure.
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément.
                                                        - Nicolas Boileau, L'Art poétique

  8. #8
    Expert éminent Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    septembre 2005
    Messages
    3 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : septembre 2005
    Messages : 3 211
    Points : 7 509
    Points
    7 509

    Par défaut

    Pas sûr que /5 soit un problème. Il y a problème si la période n'est pas un facteur de 60 (minutes).
    Exemple: 0-59/7
    La dernière exécution d'une heure est à 56mn et la suivante à l'heure pile, soit 4 minutes après et non 7.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.
    Votre problème est résolu ? Cliquez sur en bas de page.

    Linux, grep/sed/awk/xml... et autres fichiers plats, Java, C++

  9. #9
    Expert éminent Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    décembre 2012
    Messages
    2 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : décembre 2012
    Messages : 2 896
    Points : 8 041
    Points
    8 041

    Par défaut

    Hello,

    De ce que je comprends, tu veux un cron qui commence le mercredi et le dimanche qui commence à 23 heure et qui lance une commande toute les 30 minutes jusqu'au lendemain à 1h00 (non compris) du matin ?

    Or la solution proposée lance aussi le job le lundi et le jeudi à 23h00 (et 30 minutes après).

    mais tu peux peut-être le faire comme ça (pour une seul ligne) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    */30 0,23 * * 3,4,0,1 [ $(date "+%w%H") -ne 123 -a $(date "+%w%H") -ne 423 ] && TA_COMMANDE
    Cordialement.

  10. #10
    Expert éminent Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    septembre 2005
    Messages
    3 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : septembre 2005
    Messages : 3 211
    Points : 7 509
    Points
    7 509

    Par défaut

    Bonne idée !

    Mais il faut enlever 23 le 1 et le 4, ET 0 le 0 et le 3.

    Ça rejoint l'idée de BufferBob de contrôler le temps soi-même.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.
    Votre problème est résolu ? Cliquez sur en bas de page.

    Linux, grep/sed/awk/xml... et autres fichiers plats, Java, C++

  11. #11
    Expert éminent Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    décembre 2012
    Messages
    2 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : décembre 2012
    Messages : 2 896
    Points : 8 041
    Points
    8 041

    Par défaut

    C'est vrai, on peut rester quand même dans ton cas précis à 2 tests:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    */30 0,23 * * 3,4,0,1 [ $(date "+%w" --date="-1 hour") -eq 0 -o $(date "+%w" --date="-1 hour" ) -eq 3 ] && TA_COMMANDE
    Pour le dimanche qui est le jour 0:
    si on fait -1 heure on a 0 pour 23h00 et 6 pour 00h00
    Pour le lundi qui est le jour 1:
    si on fait -1 heure on a 0 pour 00h00 et 1 pour 23h00
    Pour le mercredi qui est le jour 3:
    si on fait -1 heure on a 3 pour 23h00 et 2 pour 00h00
    Pour le jeudi qui est le jour 4:
    si on fait -1 heure on a 3 pour 00h00 et 4 pour 23h00
    Cordialement.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème de cron job
    Par FabaCoeur dans le forum Linux
    Réponses: 3
    Dernier message: 31/12/2009, 15h47
  2. Réponses: 4
    Dernier message: 21/08/2009, 19h42
  3. [Quartz] Cron Job qui tourne en boucle
    Par K-Kaï dans le forum APIs
    Réponses: 1
    Dernier message: 07/02/2008, 11h19
  4. Cron job sur un Pack perso confort 1&1 ?
    Par yazerty dans le forum Outils
    Réponses: 5
    Dernier message: 25/09/2007, 18h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo