我基本上认定是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的环境变量。