Cron et dbi [résolu]

Cron et dbi [résolu] - Shell/Batch - Programmation

Marsh Posté le 31-10-2005 à 14:55:17    

Bonjour à tous voila g un gros problème. Je veux automatiser un accès à ma base de données avec un script PERL.Lorsque je le lance manuellement il n'y a aucun problèmes mais lorsque je le lance dans ma crontab j'obtient ce message  
 

Code :
  1. Can't load '/usr/local/lib/perl5/site_perl/5.8.3/sun4-solaris/auto/DBD/Pg/Pg.so' for module DBD::Pg: ld.so.1: /home/noc-nfs/stfe/current_version/scripts/putStfeAlarmExportDb: fatal: libgcc_s.so.1: open failed: No such file or directory at /usr/local/lib/perl5/5.8.3/sun4-solaris/DynaLoader.pm line 229.
  2. at /home/noc-nfs/stfe/current_version/scripts/putStfeAlarmExportDb line 25
  3. Compilation failed in require at /home/noc-nfs/stfe/current_version/scripts/putStfeAlarmExportDb line 25.
  4. BEGIN failed--compilation aborted at /home/noc-nfs/stfe/current_version/scripts/putStfeAlarmExportDb line 25.


 
est ce que qqun peut m'aider?


Message édité par ypnoize le 31-10-2005 à 17:11:21
Reply

Marsh Posté le 31-10-2005 à 14:55:17   

Reply

Marsh Posté le 31-10-2005 à 15:15:43    

Quel est le contenu de ta crontab ?

Reply

Marsh Posté le 31-10-2005 à 15:22:26    

jlighty a écrit :

Quel est le contenu de ta crontab ?


Code :
  1. 59 * * * * /home/noc-nfs/stfe/current_version/scripts/putStfeAlarmExportDb


 
il y a juste le lancement de mon script PERL.


Message édité par ypnoize le 31-10-2005 à 15:24:15
Reply

Marsh Posté le 31-10-2005 à 15:39:47    

lances-tu des programmes annexes (rm, mkdir...) dans ton script ?
essaye de mettre les chemins absolues des programmes, car je vois pas d'autres différences entre l'exécution sous Cron et l'exécution par un utilisateur. Tu peux aussi rediriger les erreurs dans un fichier :
    * 59 * * * * /home/noc-nfs/stfe/current_version/scripts/putStfeAlarmExportDb &2 > /home/noc-nfs/monlog  

Reply

Marsh Posté le 31-10-2005 à 15:57:28    

jlighty a écrit :

lances-tu des programmes annexes (rm, mkdir...) dans ton script ?
essaye de mettre les chemins absolues des programmes, car je vois pas d'autres différences entre l'exécution sous Cron et l'exécution par un utilisateur. Tu peux aussi rediriger les erreurs dans un fichier :
    * 59 * * * * /home/noc-nfs/stfe/current_version/scripts/putStfeAlarmExportDb &2 > /home/noc-nfs/monlog


 
Non je n'ai pas intégré de shell dans mon script. Cron ne trouve pas le chemin vers le module pg.so ,cron de prend pas en compte les chemins vers les libs.HELP :??:  
.

Reply

Marsh Posté le 31-10-2005 à 16:09:07    

d'après ce lien : http://archives.postgresql.org/pgs [...] g00372.php
il faudrait spécifier dans la crontab la variable LD_LIBRARY_PATH
un test à faire dans la crontab :  

Code :
  1. * * * * * echo $LD_LIBRARY_PATH > /home/noc-nfs/cron_var


puis tu compares le contenu avec celui de ton compte : commande "env"
à mon avis il faut faire un export avant d'executer le script :

Code :
  1. * * * * * export LD_LIBRARY_PATH="ton path"; /home/noc-nfs/stfe/current_version/scripts/putStfeAlarmExportDb &2 > /home/noc-nfs/monlog

Message cité 1 fois
Message édité par jlighty le 31-10-2005 à 16:09:54
Reply

Marsh Posté le 31-10-2005 à 16:41:14    

jlighty a écrit :

d'après ce lien : http://archives.postgresql.org/pgs [...] g00372.php
il faudrait spécifier dans la crontab la variable LD_LIBRARY_PATH
un test à faire dans la crontab :  

Code :
  1. * * * * * echo $LD_LIBRARY_PATH > /home/noc-nfs/cron_var


puis tu compares le contenu avec celui de ton compte : commande "env"
à mon avis il faut faire un export avant d'executer le script :

Code :
  1. * * * * * export LD_LIBRARY_PATH="ton path"; /home/noc-nfs/stfe/current_version/scripts/putStfeAlarmExportDb &2 > /home/noc-nfs/monlog



 
Lors de l'export de la variable LD_LIIBRARY_PATH dans la crontab je reçois le log suivant
 

Code :
  1. Your "cron" job on noc-acces-stfe-01
  2. export LD_LIBRARY_PATH='/usr/lib:/usr/openwin/lib:/usr/dt/lib:/usr/local/lib:/opt/csw/lib:/opt/csw/postgresql/lib';/home/noc-nfs/stfe/current_version/scripts/putStfeAlarmExportDb
  3. produced the following output:
  4. sh: LD_LIBRARY_PATH=/usr/lib:/usr/openwin/lib:/usr/dt/lib:/usr/local/lib:/opt/csw/lib:/opt/csw/postgresql/lib: is not an identifier


 
merci pour le tips, on y est presque mais apparement l'export ne fonctionne pas...
 
voila le contenu de ma crontab:
 

Code :
  1. 38 * * * * export LD_LIBRARY_PATH='/usr/lib:/usr/openwin/lib:/usr/dt/lib:/usr/local/lib:/opt/csw/lib:/opt/csw/postgresql/lib';/home/noc-nfs/stfe/current_version/scripts/putStfeAlarmExportDb


 
PS: je récupère le log dans le mail de l'utilisateur grâce à la commande mail


Message édité par ypnoize le 31-10-2005 à 16:44:10
Reply

Marsh Posté le 31-10-2005 à 17:03:45    

bizarre je n'arrive pas à reproduire cette erreur :

Citation :

# produced the following output:
#
# sh:

LD_LIBRARY_PATH=/usr/lib:/usr/openwin/lib:/usr/dt/lib:/usr/local/lib:/opt/csw/lib:/opt/csw/postgresql/lib:

is not an identifier


tu utilises quel shell par défaut ?

Message cité 1 fois
Message édité par jlighty le 31-10-2005 à 17:04:02
Reply

Marsh Posté le 31-10-2005 à 17:10:49    

jlighty a écrit :

bizarre je n'arrive pas à reproduire cette erreur :

Citation :

# produced the following output:
#
# sh:

LD_LIBRARY_PATH=/usr/lib:/usr/openwin/lib:/usr/dt/lib:/usr/local/lib:/opt/csw/lib:/opt/csw/postgresql/lib:

is not an identifier


tu utilises quel shell par défaut ?


 
j'utilise ksh.
C'est bon c résolu voici ma crontab:
 

Code :
  1. 02 * * * * (/usr/bin/bash -c 'export LD_LIBRARY_PATH="/usr/lib:/usr/openwin/lib:/usr/dt/lib:/usr/local/lib:/opt/c
  2. sw/lib:/opt/csw/postgresql/lib";/home/noc-nfs/stfe/current_version/scripts/putStfeAlarmExportDb')


 
merci beaucoup pour ton aide précieuse jlighty bonne soirée et à bientot pour de nouveaux problèmes ;) .

Reply

Marsh Posté le 31-10-2005 à 17:12:32    

je pense qu'avec setenv ça aurait marché.

setenv LD_LIBRARY_PATH "/usr/lib:/usr/openwin/lib:/usr/dt/lib:/usr/local/lib:/opt/csw/lib:/opt/csw/postgresql/lib:"


Message édité par jlighty le 31-10-2005 à 17:14:55
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed