|
|
|
|
Bonjour,
Je suis en stage de fin d'études et je "découvre" Unix.
J'ai un petit problème pour lancer un programme automatiquement.
Dans mon cronfile : à 7h10 je lance un programme qui génère 2 fichiers (par.txt et par.log), à 7h20 j'envoie un mail avec par.txt comme corps du mail, à 7h25 j'envoie un mail avec par.log comme corps du mail.
Mon problème est que le programme n'est pas exécuté, mais je reçois les deux mails avec les résulats de la veille (que j'ai fait manuellement)
Y a-t-il une autre commande à faire que "crontab cronfile" ? (cronfile est le nom de mon fichier CRON)
Merci
Salut,
|
à priori je vois pas de truc qui cloche, mais je suis pas un gd spécialiste de la crontab...
10 07 * * 1,2,3,4,5 /export/home/kthmgr/crondir/pareto_wl 1 /var/opt/applications/mo/Report/sm3.0qui génère les 2 fichiers qui ne fonctionne pas. Tu es sure du fonctionnement de "pareto_wl" ? il fonctionne sans le lancer depuis cron ? si oui essaies d'ajouter des traces et de les rediriger depuis cron vers un fichier, histoire de voir si le programme tourne correctement et s'il y a pas un pbm de droits. Tu es sûre que le user qui génère les 2 fichiers a les bons droits ? |
Normalement chaque utilisateur Unix dispose de son propre ordonnancement cron. L'utilisateur avec lequel tu as lancé la commande 'crontab cronfile' doit avoir les droits d'exécuter le programme et aussi doit avoir les droits d'écriture dans les répertoires où vont être créés tes fichiers par le programme. Déja fais ce test : connectes toi avec l'utilisateur de ta crontab et lances ton programme. Regardes s'il tourne correctement et si tes fichiers sont bien générés. Si c'est le cas, ça ne devrait pas poser de problème sous cron.
|
Ton programme doit utiliser la librairie "libKI_DEBUG.so" qu'il n'arrive pas à trouver. Comme ton pgm fonctionne en manuel, c'est un pbml de droit qui fait qui fait que, lancé depuis le cron, cette librairie est inatteignable par l'utilisateur qui lance le pgm...
|
Tu peux faire un test qd même : ton pgm /export/home/kthmgr/crondir/pareto_wl, c'est un script shell ? si c'est le cas rajoutes en première ligne un echo $LD_LIBRARY_PATH, ça te permettra de savoir si ta variable est bien positionnée pour ton programme. En effet qd tu lances ton programme manuellement, cette variable d'environnement est probablement déjà chargée (si elle est dans ton .profile par exemple), mais je pense que pour un lancement depuis cron, ton pgm ne connait pas cette variable. Fais ce test, comme ça on verra si ta variable est bien déclarée. Si ce n'est pas le cas, tu pourras la déclarer dans ton pgm : LD_LIBRARY_PATH=... export $LD_LIBRARY_PATHça fonctionnera. Si le pgm "pareto_wl" que tu lances n'est pas un script shell alors il faudra créer un script qui le lancera, et ta crontab appelera ce script.
|
Répondre à sandrill0n |
J'ai comme tu m'avais dit au début, avec le script :
#!/bin/ksh echo Lancement du traitement echo $LD_LIBRARY_PATH echo Valeur de lib_path $LD_LIBRARY_PATH /export/home/kthmgr/crondir/paretoe 1 /var/opt/applications/mo/Report/sm3.0 echo Fin du traitement et j'ai ça comme sortie : ld.so.1: /export/home/kthmgr/crondir/paretoe: fatal: libKI_DEBUG.so: open failed: No such file or directory /export/home/kthmgr/crondir/parsm30.ksh[7]: 13602 Killed Lancement du traitement Valeur de lib_path Fin du traitement Bien sûr le programme ne s'exécute pas... Qu'en penses-tu ? |
Je connais ce forum que depuis hier,
|