新建的linux定时任务手工执行时是可以的,给加到定时任务里面后,发现定时任务执行出错了,没能识别sqlplus命令。
查找原因,发现在于:crontab中执行shell的时候,虽然是某个用户的权限,但是却没有读入这个用户的环境变量。由于sqplus必须要定义好环境变量后才能正确执行,所以在crontab中不调用.bashrc就没办法正确使用sqlplus了。
加上. .bash_profile,结果发现,找不到. .bash_profile这个文件,于是改成绝对路径试试,source /home/oracle/.bash_profile。再定时执行,发现定时任务已经成功的执行了sqlplus命令了。