Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 24/08/2012, à 09:36

Flambaz

[Résolu] Script avec crontab = pb, mais script sans crontab = pas pb !

Bonjour à tous,

Je ne sais pas si je suis dans la bonne section mais bon je tente quand même (je fais confiance aux modérateurs pour me replacer au cas où ^^)

Au travail, j'ai commencé à travailler sur un script (sauvegardeTSM). Celui-ci fonctionne lorsque je le lance en "manuel", cependant lorsque je le lance à l'aide de la crontab, il me sort cette erreur :

error while loading shared libraries: libclntsh.so.9.0: cannot open shared object file: No such file or directory

Si j'ai bien compris, cela aurait un problème avec la base mais je suis pas sûr.

Exécution du script :
Arrêt des applications utilisant les données d'une base --> OK
Arrêt de cette dernière --> OK
Sauvegarde --> OK
Redémarrage de la base de donnée --> OK
Redémarrage des applications de la base --> C'est ici que cela plante.

Je sais, je sais : Google est ton ami, mais là j'avoue que je n'ai pas trouvé de solution à ce problème (j'avoue aussi que mon niveau d'anglais n'est pas exceptionnelle)

Si une âme charitable voulait bien m'aider smile

RESOLUTION : suite à pas mal de comparaison avec les environnements, j'ai décidé de mettre tous l'environnement de root (en terminal) dans le script --> CELA MARCHE!! DODO TRANQUILLE.

Dernière modification par Flambaz (Le 24/08/2012, à 20:52)


Asus CG8250
i7-2600
12 Go de RAM
Voyager 13.04 64 bits

Hors ligne

#2 Le 24/08/2012, à 09:50

iuchiban

Re : [Résolu] Script avec crontab = pb, mais script sans crontab = pas pb !

Salut,

Ca ressemble au fait que en cron, tu charges pas le même environnement que quand tu es en console.
Tu peux mettre au début de ton script la commande :

env > /tmp/env.txt

Après tu compares avec ce que tu as en console avec la commande env toute seule.

S'il te manque un truc (genre un PATH pas identique) il suffit de le forcer dans ton script avec par exemple :

export PATH=$PATH:/Chemin/manquant

C'est depuis que Chuck Norris a laissé la vie sauve à un manchot que l'on dit que Linux est libre.

Chuck Norris n'a pas besoin d'éditer son premier message pour ajouter [Résolu]. Chuck Norris est toujours [Résolu], quoi qu'il arrive.

Hors ligne

#3 Le 24/08/2012, à 09:55

Flambaz

Re : [Résolu] Script avec crontab = pb, mais script sans crontab = pas pb !

C'est vrai. J'y avais plus ou moins pensé alors j'avais essayé de "contourner" le problème en mettant dans la crontab :

00 16 * * *  root    su - root -c "/root/bin/sauvegardeTSM"

à la place de

00 16 * * *  root    /root/bin/sauvegardeTSM

Et à part une variable date, tout était pareil et le script me renvoyait la même erreur...

Mais je vais essayer de comparer comme tu me l'as dit iuchiban et de voir ce qu'il me dit. Je reviens vers vous dans quelques temps.


Asus CG8250
i7-2600
12 Go de RAM
Voyager 13.04 64 bits

Hors ligne

#4 Le 24/08/2012, à 10:52

Flambaz

Re : [Résolu] Script avec crontab = pb, mais script sans crontab = pas pb !

Bon, j'ai pas de différence flagrante. La différence entre env_terminal et env_cron (en utilisant su - root dans la crontab) donne :

root > diff env_terminal env_cron
2,3c2,3
< BASHPROFILE=08:39:18
< BASHRC=08:39:18
---
> BASHPROFILE=10:31:01
> BASHRC=10:31:01
11c11
< ETCPROFILELOCAL=08:39:18
---
> ETCPROFILELOCAL=10:31:01
40,41c40,41
< LS_COLORS=no=00:fi=00:di=01;34:ln=00;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31:ex=00;32:*.cmd=00;32:*.exe=01;32:*.com=01;32:*.bat=01;32:*.btm=01;32:*.dll=01;32:*.tar=00;31:*.tbz=00;31:*.tgz=00;31:*.rpm=00;31:*.deb=00;31:*.arj=00;31:*.taz=00;31:*.lzh=00;31:*.zip=00;31:*.zoo=00;31:*.z=00;31:*.Z=00;31:*.gz=00;31:*.bz2=00;31:*.tb2=00;31:*.tz2=00;31:*.tbz2=00;31:*.avi=01;35:*.bmp=01;35:*.fli=01;35:*.gif=01;35:*.jpg=01;35:*.jpeg=01;35:*.mng=01;35:*.mov=01;35:*.mpg=01;35:*.pcx=01;35:*.pbm=01;35:*.pgm=01;35:*.png=01;35:*.ppm=01;35:*.tga=01;35:*.tif=01;35:*.xbm=01;35:*.xpm=01;35:*.dl=01;35:*.gl=01;35:*.aiff=00;32:*.au=00;32:*.mid=00;32:*.mp3=00;32:*.ogg=00;32:*.voc=00;32:*.wav=00;32:
< LS_OPTIONS=-a -N --color=tty -T 0
---
> LS_COLORS=
> LS_OPTIONS=-a -N --color=none -T 0
43d42
< MAIL=/var/mail/root
52d50
< OLDPWD=/root/.logfile
66,69d63
< SSH_CLIENT=10.22.193.149 2765 22
< SSH_CONNECTION=10.22.193.149 2765 10.22.203.83 22
< SSH_TTY=/dev/pts/2
< TERM=xterm

Personnellement, je ne vois rien qui ne saute au yeux.

Maintenant que j'y pense, je fais appel à des utilisateurs dans le script.
A votre avis, est-ce que l'on aurait encore ces problèmes d'environnement?

EDIT : cela ne vient pas des utilisateurs appelés dans le script... sad (Je déprime)

EDIT2: suite à pas mal de comparaison avec les environnements, j'ai décidé de mettre tous l'environnement de root (en terminal) dans le script --> CELA MARCHE!! DODO TRANQUILLE.

Merci beaucoup iuchiban pour ta solution.

Dernière modification par Flambaz (Le 24/08/2012, à 13:13)


Asus CG8250
i7-2600
12 Go de RAM
Voyager 13.04 64 bits

Hors ligne