môi trường shell rất quan trọng đối với Oracle và hầu như không có khi sử dụng cron. Như mọi khi, có một số cách để giải quyết vấn đề này.
- sử dụng các đường dẫn đủ điều kiện - hơi thiếu linh hoạt
- tạo tập lệnh để thiết lập môi trường thực thi của riêng nó
- thiết lập môi trường thực thi trong cron, khi gọi tập lệnh.
Một cách khá chuẩn để thiết lập môi trường của bạn từ khi có tập lệnh là sử dụng tập lệnh oraenv, thường nằm trong / 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
từ dòng cron:
10 10 * * * $HOME/.profile;$HOME/bin/your_script >$HOME/log/your_script.log 2>&1
Điều này giả định rằng .profile không tương tác và xuất ra môi trường cần thiết.