L'esecuzione di uno script con crontab restituisce un codice di errore 127
Domanda
Sto eseguendo manualmente uno script sul mio sistema UNIX, funziona correttamente e ha aggiornato i record richiesti nel database ORACLE. Tuttavia, quando eseguo lo stesso script con crontab, il mio processo termina con il codice di errore 127.
Analizzando ulteriormente, ho riscontrato qualche problema in queste affermazioni.
LOGFILE = sachin ORALOGIN = abc / abc @ abcd
cmd = 'sqlplus $ {ORALOGIN} < SQLS & Gt; & Gt; $ {} SVC_HOME / LOGFILES / $ {LOGFILE} date +%Y-%m-%d
';.
eval $ cmd
Suggerisci una soluzione
Soluzione
Sei sicuro che ${ORALOGIN}
e ${LOGFILE}
sono variabili ENV valide quando cron esegue lo script?
A volte gli script che funzionano per gli utenti non funzionano per cron perché le esecuzioni cron non hanno tutte le variabili ENV che gli utenti hanno.
Altri suggerimenti
Nell'ambiente interattivo fare
env | grep ORACLE
Molto tempo da quando ho usato sqlplus, ma ricordo che per funzionare (ORACLE_HOME?) sono necessarie alcune variabili di ambiente e sospetto che il tuo ambiente di lavoro cron non abbia queste impostazioni.