środowisko powłoki jest bardzo ważne dla Oracle i prawie nie występuje podczas korzystania z crona. Jak zawsze istnieje kilka sposobów rozwiązania tego problemu.
- użyj pełnych kwalifikowanych ścieżek – trochę nieelastycznych
- stwórz skrypt, aby skonfigurować własne środowisko wykonawcze
- skonfiguruj środowisko wykonawcze w cron podczas wywoływania skryptu.
Dość standardowym sposobem konfiguracji środowiska za pomocą skryptu jest użycie skryptu oraenv, zwykle znajdującego się w /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
z linii crona:
10 10 * * * $HOME/.profile;$HOME/bin/your_script >$HOME/log/your_script.log 2>&1
Zakłada się, że .profile nie jest interaktywny i eksportuje potrzebne środowisko.