crontab運行程序時,它沒有讀當前用戶的。profile,解決方法——
1.如果有root權限可以這樣來修改crontab:
7 50 * * * su - user -c /channel/app/back/scripts/serv_cust.sh >/channel/app/cron.out
2.也可以在serv_cust.sh中加上
。 $HOME/.profile
以獲取。profile中定義的各種環境變量
3.也可能是權限問題。方法:普通用戶須被列在/etc/cron.allow中(如果該文件存在),或不被列在/etc/cron.deny中。檢查Oracle用戶是否在上述文件中。
4.你需要在執行程序前先配置oracle的環境參數,如:$Oracle_HOME等等;
如下,先寫一個腳本文件test.sh
#!/bin/sh
ORACLE_HOME=/home/Oracle
export Oracle_HOME
……
/usr/users/Oracle/test1
然後再寫crontab腳本:
4 * * * /usr/users/Oracle/test.sh
就可以了。
沒登錄的後台運行程序,沒有。profile裡的環境變量
也許是Oracle的環境變量。
二、solaris crontab不執行問題解決
1.先殺掉/usr/sbin/cron,可以用ps -ef|grep cron 得出id號
2. rm /etc/cron.d/fifo
3. /usr/sbin/cron