首页 文章

如果shell脚本在添加到crontab时失败,可能会出现什么错误?

提问于
浏览
0

我有一个shell脚本,它创建一个文本文件,其中包含sql查询产生的数据 . 当我手动运行它时,它运行得很好,但是当作业被添加到crontab时,它会失败,因为它无法从数据库中的表中获取少量必需参数 . 使用crontab计划作业时会发生什么变化?
[编辑]
该脚本使用以下函数来执行作为参数传递的sql查询 . 当我手动运行它时,传递的sql查询返回所需的值,以便脚本成功运行 . 但是当它通过crontab运行时,sql查询没有返回数据,因此脚本异常退出,说明缺少必需的参数 .

try_sql_spool() { ( sqlplus -SILENT /NOLOG @/dev/stdin << EndOfSQL WHENEVER OSERROR EXIT FAILURE WHENEVER SQLERROR EXIT FAILURE CONNECT $USER/$PWD@$SID SET SERVEROUTPUT OFF; SET TERMOUT OFF SET TRIMSPOOL ON SET PAGESIZE 0 SET LINESIZE 32767 SET FEEDBACK OFF SET VERIFY OFF SET TAB OFF SPOOL /dev/stderr $1 SPOOL OFF EndOfSQL ) #3<&1 1<&2 2<&3 3<&- }

提前致谢 .

1 回答

  • 0

    回答自己的问题:

    脚本在添加到crontab时正在中止,因为用户已切换且无法假脱机 /dev/stderr ,因为新用户没有 /dev/stderr 的写入权限 . 所以有 O/S Message: Permission denied 错误 . 所以它无法从数据库中获取所需的数据 .

    谢谢大家的回复 .

相关问题