从sh运行sql脚本工作正常。 sql脚本仅将(在此简化情况下)日期写入假脱机文件。
从cron运行文件时,它不会假脱机。
sh(testsql.sh):
#! /bin/sh
. /private/someuser/.bashrc
setenv PATH $PATH:/usr/kerberos/bin:.:/local/bin:/....
/prog/oracle/10.2.0/bin/sqlplus someuser/somepw@p208 @/project/myfullpath/OW_Server_list_SIS.sql
sql脚本(OW_Server_list_SIS.sql):
spool /project/myfullpath/SIS_Server_list.txt
select sysdate from dual;
spool off;
我在myuser的crontab中有以下行:
36,15 * * * * env USER=someuser /project/myfullpath/testsql.sh
因此,手动运行testsql.sh会写入SIS_Server_list.txt,但cron不会。
正如你所看到的,我已经尝试将环境添加到cron和配置文件到sh,并且还复制了myuser使用的路径。这些是我在网上遇到的所有补救措施,但到目前为止没有任何工作。我在使用redhat 6.当然这与环境有关,但我对此表示不满意。添加了所有这些行(即bashrc / setenv / path)我也尝试将其他行注释掉。任何新的想法将不胜感激。 干杯