shell-omgeving is erg belangrijk voor Oracle en is er bijna niet bij het gebruik van cron. Zoals altijd zijn er verschillende manieren om dit op te lossen.
- gebruik volledig gekwalificeerde paden - een beetje inflexibel
- maak het script om zijn eigen uitvoeringsomgeving in te stellen
- stel de uitvoeringsomgeving in cron in, wanneer u het script aanroept.
Een vrijwel standaardmanier om uw omgeving vanuit het script in te stellen, is door het oraenv-script te gebruiken, dat zich normaal gesproken bevindt in /usr/local/bin
ORACLE_SID={your_sid}
ORAENV_ASK=NO
type oraenv >/dev/null 2>&1 || PATH=/usr/local/bin:$PATH
. oraenv
SQLPATH=$HOME/sql
export SQLPATH
do your stuff
van de cron-regel:
10 10 * * * $HOME/.profile;$HOME/bin/your_script >$HOME/log/your_script.log 2>&1
Dit veronderstelt dat het .profile niet interactief is en exporteert de benodigde omgeving.