Pb de lancement d'un script avec le cron

Bonjour à tous

Je ne connais pas très bien Unix. Je souhaite lancer tous les jours par le cron 4 scripts à 1h, 2h, 4h et 7h. Celui de 4h n'a jamais fonctionné. Je fais bien appel au bon fichier, avec le bon chemin (quand je lance ce script à la main il tourne très bien). Quelqu'un peut-il m'aider ? Merci beaucoup d'avance. Je travaille sur SUN OS 5.7

Bonne journée

2 réponses

  1. ton script utilises des variables d'environnement ou des chemins qui sont pas le path de l'utilisateur qui lance le cron.
    1. Merci nabot, peux-tu stp m'expliquer davantage ? mon script utilise les mêmes variables et les mêmes chemins que les 3 autres scripts. Le cron appartient à root. Pourquoi les 3 autres marchent et pas celui-ci ?
    2. Webmaster
      @wintermoonSalut Wintermoon,

      Bon, normalement, cron demarre avec un PATH reduit, (/bin;/usr/bin)
      Donc il faut prendre l'habitude dans tes script de donner a chaque fois le chemin complet de tes commandes, executables, fichier (d'une maniere générale, c'est pas plus mal pour tout les scripts). De plus veille bien a ne pas utiliser les options Verbose (tar -cvzf -> tar -czf) Ca peu poser probleme quelques fois, et de maniere plus general, tu peux rediriger la sortie standard et les erreurs, qui ne te sont pas utiles dans un script cron. (2>&1 >dev/null)

      @++

      "Si c'est stupide et que ça marche,
              alors ce n'est pas stupide"
    3. @asevereBonjour asevere

      c'est gentil de m'avoir répondu, merci...

      Voici la ligne qui fonctionne pas dans mon cron:
      00 04 * * * /u01/scripts/integrations/purge>>dev/null

      Dans mon script "purge" je mets à chaque fois le chemin complet:

      cd /u01/scripts/integrations

      echo "`date +%y%m%d-%H:%M:%S`" >> purge.tr
      /u01/bin/sqlplus user/pw @toto.sql > > purge.tr
      ...

      Ma trace purge.tr reste vide, comme si ma ligne dans le cron était inexistante :-(
  2. Ajoute 2>/tmp/err à la fin de ta ligne pour voir les erreurs au cas où
    1. merci je vais essayer ça

      bonne soirée