Forum Linux.debian/ubuntu Cron.hourly qui tourne pas

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

je suis un neuneu de cron, j'ai tenté de faire en sorte qu'un de mes scripts se lance toutes les heures, et pour l'instant je sèche...

J'ai lu la doc, j'ai découvert l'existence du dossier /etc/cron.hourly, dans lequel j'ai placé mon script shell que j'ai chmodé 755 (et qui tourne très bien si je lance à la main), j'ai même relancé cron (chose a priori inutile) dans le doute, mais rien n'y fait, mon script ne se lance pas...

Dans mon fichier crontab j'ai ca :
17 * * * * root cd / && run-parts --report /etc/cron.hourly > /home/cho7/cron_hourly.log
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )


A priori le cron.hourly est bien dedans, je comprend même qu'il est censé se lancer toutes les heures, à la 17ème minutes de l'heure (c'est pour faire original que cron est préconfiguré de la sorte ? A moins que ce ne soit pour pas se lancer en même temps que les jobs dans daily, weekly, etc)

Bref, je pige pas, j'ai du rater un truc, mais quoi ?

Merci !
  • # AH j'oubliais

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

    J'oubliais, en relisant mon post j'ai vu que j'avais placé une redirection dans un fichier de log pour voir comment ca tournait la dedans, et en fait mon fichier de log est bien apparu (le dernier à 13h17), mais il n'y a rien dedans...
    • [^] # Re: AH j'oubliais

      Posté par  . Évalué à 3.

      Y a quoi dans ton script shell ? As-tu bien mis le #! en tête de script ? Sinon, en fonction de la méthode qu'utilise cron pour évaluer les scripts, il se peut qu'il ne sache pas le lancer ...
      • [^] # Re: AH j'oubliais

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

        Mon script shell :

        #!/bin/sh
        cd /home/cho7/
        python prog.py
        cat /home/cho7/prog_ftp.txt | yafc pouet:plop@ftpperso.free.fr

        Qu'entend-tu par "la méthode qu'utilise cron pour évaluer les scripts" ?
      • [^] # Re: AH j'oubliais

        Posté par  . Évalué à 2.

        Ca peut être un problème de PATH...
        • [^] # Re: AH j'oubliais

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

          J'y ai pensé, mais dans le script crontab j'ai :

          SHELL=/bin/sh
          PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

          donc la commande python (/usr/bin/python) devrait être accessible
  • # Extension sh

    Posté par  . Évalué à 3.

    Est-ce que le nom de fichier de ton script contient .sh à la fin ?
    Si oui, il faut le virer.
    Cf http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=472585

    @++
    • [^] # Re: Extension sh

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

      Bingo !

      Mon script se terminait par ".cron" car c'est ce que je lisais un peu partout quand j'ai cherché à voir comment marcher le bidule.


      Merci beaucoup :)

      PS : juste pour ma culture perso, debian dit que c'est pas un bug, mais c'est comment sur les autres systèmes ?
      • [^] # Re: Extension sh

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

        en fait j'ai eu ma réponse en relisant le thread que tu cites et en lisant le manuel de run-parts en français.

        la commande run-parts utilisée par cron pour lancer les scripts n'accepte par défaut que les fichiers écrits en minuscules et sans extension. Il faut passer par l'option --regex pour forcer un nom matchant un pattern différent
  • # Y a pas a dire ...

    Posté par  . Évalué à 4.

    casse-toi, pov cron ....
    • [^] # Re: Y a pas a dire ...

      Posté par  . Évalué à 1.

      c'est vendredi, c'est permis,
      mais j'ai failli mal le lire (et donc mal l'interpréter) en lisant trop vite...

Suivre le flux des commentaires

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