Forum Programmation.shell Format crontab

Posté par  (site web personnel) .
Étiquettes : aucune
0
24
sept.
2008
Bonjour,

je cherche a effectuer une tâche toutes les 6heures, très exactement à minuit, 6h, 12h et 18h.

Pour celà j'utilise la ligne de crontab suivante:

#Relancement du serveur toutes les 6 heures
0 0-23/6 * * * sh /home/login/cron/run_serveur_meteo.sh & >/dev/null 2>&1

Première question que je poserai:

1. Le format de ma commande est il bien correct?

L'autre point que j'aimerai aborder: vous l'aurez compris en lisant le nom du script, je lance là un serveur météo.

2. Si je lance le script run_serveur_meteo.sh depuis le prompt, le serveur tourne et ne me rend pas la main, normal. L'esperluette (&) est elle donc utile voir indispensable sur ma ligne crontab???


D'avance merci

Uld
  • # Oui

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

    1. oui mais
    J'aurais plutôt mis */6

    2. oui mais
    Elle se met après les redirections
  • # autre question

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

    Si je place 0 */6 * * * comment être sur que ce sera lancé à 0,6,12,18heures et non pas à 1,6,13,19heures??

    En gros quel est le point de référence de départ pour cron quand on lui dit "tu bosse toutes les 6 heures" ??
    • [^] # Re: autre question

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

      C'est le premier chiffre de ta cron. Donc dans 0 */6 * * *, tu vas lancer ton job à 0 minutes.

      Bonne journée !
      • [^] # Re: autre question

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

        [quote] C'est le premier chiffre de ta cron. Donc dans 0 */6 * * *, tu vas lancer ton job à 0 minutes.[/quote]

        Oui mais à la 0ième minutes que quelle heure?? toutes les 6 heures c'est certain, mais quelle est l'heure de référence? Minuit, 1h du mat'? 2h du mat'?? A partir de quand boucle t'il toutes les 6 heures?

        J'ai besoin d'une synchro toutes les 6 heures à 0,6,12,18h, pas à 1,7,13,19h et encore moins à 2,8,14,20h... comment s'en assurer?
        • [^] # Re: autre question

          Posté par  . Évalué à 3.

          Ce sont les chiffres du champ en question qui comptent.
          Donc un 0-23/6 (qui est équivalent à */6 pour les heures) se lancera à 0 6 12 et 18, tandis qu'un 1-23/6 se lancera à 1 7 13 et 19 et un 5-16/6 se lance à 5 et 11.

          C'est intéressant par exemple si tu veux lancer plusieurs scripts toutes les cinq minutes mais que tu ne veux pas qu'ils se lancent en même temps, il suffira de mettre pour les minutes des 0-59/5 (0,5,10,...) 1-59/5 (1,6,11,...) 2-59/5 (2,7,12,...) ...
    • [^] # Re: autre question

      Posté par  . Évalué à 2.

      D'après man 5 crontab :
      "A field may be an asterisk (*), which always stands for ‘‘first-last’’."

      "
      field allowed values
      ----- --------------
      hour 0-23
      "

      Donc */6 corresponds à la même chose que 0-23/6.
  • # Pas de '&' dans ton cas

    Posté par  . Évalué à 3.

    Le contenu de ton crontab n'est pas exécuté en avant plan. Donc le '&' ne sert pas. Voire même il pose problème, je n'ai pas testé.

Suivre le flux des commentaires

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