Précédent   Forum des professionnels en informatique > Systèmes > Linux > Système
Système Vos questions autour de l'administration système
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 31/12/2007, 12h58   #1
Invité régulier
 
Inscription : octobre 2006
Messages : 25
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 25
Points : 8
Points : 8
Par défaut cron et sqlldr

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
gibson700 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/12/2007, 14h15   #2
Membre chevronné
 
Avatar de matrix788
 
Inscription : juin 2002
Messages : 695
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 695
Points : 792
Points : 792
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 ==
matrix788 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/12/2007, 15h26   #3
Membre actif
 
Inscription : mars 2007
Messages : 171
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 171
Points : 171
Points : 171
Est tu certain que ton script shell, lancé par cron, dispose des variables d'environnement nécessaires à Oracle ?
ericduval est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2008, 10h56   #4
Rédacteur
 
Inscription : mars 2004
Messages : 1 298
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 1 298
Points : 1 450
Points : 1 450
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 :
1
2
 
. /repertoire_home_oracle/.bash_profile
__________________
Marc
Slackware for ever ......
BASH - KSH ( http://marcg.developpez.com/ksh/ )
MarcG est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2008, 10h33   #5
Invité régulier
 
Inscription : octobre 2006
Messages : 25
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 25
Points : 8
Points : 8
Par défaut une solution trouvé

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
gibson700 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h03.


 
 
 
 
Partenaires

Hébergement Web