Forum Linux.général Je bataille avec Crontab

Posté par  .
Étiquettes : aucune
0
11
avr.
2007
Bonjour,

J'ai besoin pour des questions de charge serveur de faire tourner un agent un
dimanche sur deux le matin vers 5h00. J'ai tenté la syntaxe suivante mais sans succès, il me la refuse:

0 5 * * 0/2 ...

Du coup je ne sais pas comment faire et j'ai pas encore trouvé d'exemple... Est ce que
quelqu'un aurait une petite astuce des derrière les fagots ?

Merci a+
Xavier
  • # Presque

    Posté par  (site web personnel) . Évalué à 2.

    Je ne crois pas que cela soit possible directement dans cron.
    Heureusement c'est un shell qui est lancé, tu peux donc faire

    0 5 * * 0 if [ $(((`date +"%U"`)%2)) -eq 0 ]; then tacommande; fi
    • [^] # Re: Presque

      Posté par  . Évalué à 1.

      Excellente idée ! mais ca ne marchera pas non plus... car on peut parfois avoir deux
      dimanches qui se suivent et qui ont un numéro jour impair (ou pair).
      Exemple : 27/05/2007 et le 03/06/2007... Du coup mon agent ne tournerait pas
      pendant 3 semaines. Je crois que je vais pas trop avoir le choix de stocker l'info
      quelque part...

      a+
      Xavier
      • [^] # Re: Presque

        Posté par  . Évalué à 1.

        sauf erreur de ma part +%U ne renvoi pas le numéro du jour, mais le numéro de la semaine (ou sinon cest +%V jai pas d'unix sous la main pour vérifier)
        Donc dans ton exemple :
        le 27/05/2007 tombe en semaine 22
        le 03/06/2007 tombe en semaine 23
        donc son script marche bien
        • [^] # Re: Presque

          Posté par  . Évalué à 1.

          Autant pour moi !!!!

          Ca m'a effectivement retourné le numéro de semaine (14) et comme c'était proche de
          la date du jour (le 11) je me suis mélangé ! Ca fonctionnerait donc bien une semaine
          sur deux ! Excellent je test ca.

          Merci encore a+
          Xavier
      • [^] # Re: Presque

        Posté par  . Évalué à 1.

        Ou alors, tu passes par un fichier temporaire qui fait un lock...
        Exemple :
        Ton script est lancé tous les dimanches à 05h00, si /var/lock/script.lock existe, tu le détruis, point, sinon, tu fais ce que tu as à faire et tu crées le fichier /var/lock/script.lock.
        Voilà, en espérant que ça t'aidera.
        • [^] # Re: Presque

          Posté par  . Évalué à 2.


          Exemple :
          Ton script est lancé tous les dimanches à 05h00, si /var/lock/script.lock existe, tu le détruis, point, sinon, tu fais ce que tu as à faire et tu crées le fichier /var/lock/script.lock.


          avec des retours à la ligne, ca eclairci et permet de mieux lire

          Exemple : Ton script est lancé tous les dimanches à 05h00,

          |-si /var/lock/script.lock existe,
          | tu le détruis,
          | point,
          |-sinon,
          | tu fais ce que tu as à faire
          | et tu crées le fichier /var/lock/script.lock.
          |
          • [^] # Re: Presque

            Posté par  . Évalué à 2.

            Ok, mais l'idée était là....
            Et puis ma solution au moins, elle fonctionne, tout le temps, ce qui n'est pas le cas de la solution proposée ci-dessus qui cafouillera les années comportant 53 semaines. Et ça arrive.
            Du coup, je ne comprends pas pourquoi la note de mon commentaire a été diminuée, mais peu importe.
            Ça me donne de moins en moins envie d'aider....

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.