Pb de lancement d'un script avec le cron
wintermoon
Messages postés
9
Statut
Membre
-
wintermoon Messages postés 9 Statut Membre -
wintermoon Messages postés 9 Statut Membre -
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
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
-
ton script utilises des variables d'environnement ou des chemins qui sont pas le path de l'utilisateur qui lance le cron.
-
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 ?
- Salut 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"
- Bonjour 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 :-(
-
-
Ajoute 2>/tmp/err à la fin de ta ligne pour voir les erreurs au cas où