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. 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
  2. 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 :-(