crontab里面有一个perl脚本,但是一直执行不成功,手工调用perl ***.pl却可以成功。
手工能执行成功 说明该脚本语法以及权限均不存在问题。
通过在crontab中设置跟踪日志
*、1 * * * * /home/oracle/tools/find_sql.pl >> /home/oracle/find_sql_temp.log 2>&1
可以捕获到错误信息如下
Can't exec "sendEmail": No such file or directory at /home/oracle/find_sql.pl line 39.
初步推断此问题是由环境变量设置不正确导致的,但是perl脚本中已经有了如下设置
$ENV{ORACLE_HOME} = "/data/oracle/product/10.2/db1";
$ENV{ORACLE_SID} = "justin";
查看.bash_profile设置的路径信息
[oracle@racdg1 ~]$ echo $PATH
/home/oracle/bin:/data/oracle/product/10.2/db1/bin:/usr/lib64/qt-3.3/bin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/home/oracle/bin:/sbin/:/data/oracle/product/10.2/crs//bin:/home/oracle/tools
将其加入到perl脚本中,crontab即可成功调用并执行该perl脚本
$ENV{PATH} ="/home/oracle/bin:/data/oracle/product/10.2/db1/bin:/usr/lib64/qt-3.3/bin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/home/oracle/bin:/sbin/:/data/oracle/product/10.2/crs//bin:/home/oracle/tools";
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/15480802/viewspace-686976/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/15480802/viewspace-686976/