skalmiljön är väldigt viktig för Oracle och finns nästan inte där när du använder cron. Som alltid finns det flera sätt att lösa detta.
- använd fullständiga kvalificerade vägar - lite oflexibel
- gör skriptet för att ställa in sin egen körmiljö
- ställ in exekveringsmiljön i cron när du anropar skriptet.
Ett ganska vanligt sätt att ställa in din miljö från skriptet är att använda skriptet oraenv, som normalt finns i /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
från kronraden:
10 10 * * * $HOME/.profile;$HOME/bin/your_script >$HOME/log/your_script.log 2>&1
Detta förutsätter att .profilen inte är interaktiv och exporterar den nödvändiga miljön.