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

如果将shell脚本添加到crontab时失败,可能会出现什么错误?,shell,unix,cron,crontab,Shell,Unix,Cron,Crontab,我有一个shell脚本,它使用sql查询产生的数据创建一个文本文件。当我手动运行它时,它运行得很好,但当作业添加到crontab时,它失败了,因为它无法从数据库中的表中获取一些必需的参数。当我们使用crontab计划作业时,会发生哪些变化? [编辑] 脚本使用以下函数执行作为参数传递的sql查询。当我手动运行它时,传递的sql查询将返回所需的值,因此脚本将成功运行。但当它通过crontab运行时,sql查询没有返回任何数据,因此脚本异常退出,说明缺少必需的参数 try\u sql\u spool

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

try\u sql\u spool(){
(

sqlplus-SILENT/NOLOG@/dev/stdin回答自己的问题:

脚本在添加到crontab时中止,因为用户已切换,并且它无法假脱机
/dev/stderr
,因为新用户没有对
/dev/stderr
的写入权限。因此出现
O/S消息:权限被拒绝
错误。因此它无法从数据库获取所需数据


谢谢大家的回复。

运行它的用户,也许。你应该发布脚本。很抱歉没有发布脚本。我认为我不允许发布脚本。你能告诉我默认情况下运行cron作业的用户是谁吗?用户、路径和其他环境变量。crontab所属的用户。至少你应该发布你的错误消息(如果有)。没有错误。脚本正在运行,但由于无法从数据库中获取所需参数而停止。因此我猜用户没有问题,但实际问题是,在脚本的开头有一个sql语句,它获取了运行作业所需的所有参数。因此我怀疑连接t当数据库通过cron运行时,它不会发生。但如果我手动运行它,它会从数据库获取所有必需的参数。