|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Inscription : octobre 2006 Messages : 25 ![]() |
Salut tout monde,
J'ai un scripte shell qui charge des données dans une base de données oracle. Le scripte s'execute bien quand on le lance manuellement....... quand je le mets dans mon cron (crontab -e) il s'execute à la date&heure voulu mais n'execute pas la commande sqlldr j'ai toute suite pensé que c'était un probleme de PATH>> j'ai mis le chemin complet de la commande /oracle/.../bin/sqlldr rien ne marche! Avez une solution ou pouvez m'expliquer le pourquoi???? Mon OS=Redhat Enterprise |
|
|
00
|
|
|
#2 |
|
Membre chevronné
![]() ![]() Inscription : juin 2002 Messages : 695 ![]() |
as-tu vérifié ceci :
BOGUES Bien que chaque entrée d’une crontab doit être terminée par un retour à la ligne, ni la commande crontab ni le démon cron ne détectera cette erreur. Au contraire, la crontab se chargera normalement. Toutefois, la commande ne sera jamais exécutée. La meilleure solution est de s’assurer que la crontab soit terminée par une ligne blanche.
__________________
Modérateur Linux n'oubliez pas de cliquer sur résolu... == pas de question technique en MP. Merci == |
|
|
00
|
|
|
#3 |
|
Membre actif
![]() Inscription : mars 2007 Messages : 171 ![]() |
Est tu certain que ton script shell, lancé par cron, dispose des variables d'environnement nécessaires à Oracle ?
|
|
|
00
|
|
|
#4 | ||
![]() Inscription : mars 2004 Messages : 1 298 ![]() |
comme l'ecrit ericduval, il s'agit plus que probablement d'un probleme de variable d'environnement :
la crontab n'initialise jamais celle-ci, il faut dans ton script le faire, le moyen le plus simple est encore d'appeller le script du user "oracle" typiquement (si le cron est du "bon" user) Code :
|
||
|
|
00
|
|
|
#5 |
|
Invité régulier
![]() Inscription : octobre 2006 Messages : 25 ![]() |
Merci les gars!
vous avez raison,c'étais un probleme de variable d'evironnement le "echo $?" m'avais donné la valeur "3", je suis parti sur la doc de sql loader, et ça correspondait a 'fatal error'.(donc sqlldr s'executait en fait!) Ce probleme survient quand sql loader n'accede pas à tous les doc et lib necessaire. Sur cette lancé, j'ai pu trouvé des docs qui expliqué ce probleme avec la crontab La solution que j'ai trouvé est la suivante: j'ajoute mon scripte sur la crontab avec root puis au debut je met "su - mon_user" Le "su - mon_user" va charger le bash profile et l'environnement de ce user. Et ça marche! NB:mon_user est utilisateur simple qui peut executer oracle...... Merci vraiment |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com