Question

J'exécute manuellement un script sur mon système UNIX. Il s'exécute correctement et met à jour les enregistrements requis dans la base de données ORACLE. Cependant, quand j’exécute le même script avec crontab, mon processus se termine avec le code d’erreur 127.

En analysant plus en détail, j’ai eu quelques problèmes dans ces déclarations.

LOGFILE = sachin ORALOGIN = abc / abc @ abcd

cmd = 'sqlplus $ {ORALOGIN} < SQLS & Gt; & Gt; $ {SVC_HOME} / LOGFILES / $ {LOGFILE}. date +%Y-%m-%d ';

eval $ cmd

Veuillez suggérer une solution

Était-ce utile?

La solution

Êtes-vous sûr que ${ORALOGIN} et ${LOGFILE} sont des variables ENV valides lorsque cron exécute le script?

Parfois, les scripts qui fonctionnent pour les utilisateurs ne fonctionnent pas pour cron car les exécutions de cron ne contiennent pas toutes les variables ENV des utilisateurs.

Autres conseils

Dans l'environnement interactif, faites

env | grep ORACLE

Cela fait longtemps que je n’utilise pas sqlplus, mais je me souviens que certaines variables d’environnement étaient nécessaires pour fonctionner (ORACLE_HOME?) et je soupçonne que votre environnement de travail cron n’a pas été défini.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top