&引用;集合-x";在bash和ksh中,不会为cron作业生成输出
我有一个脚本,我正在调试 该脚本完全可以从命令行运行,但在cron中使用相同的参数调用时,会出现无法传输文件的特定于应用程序的错误 为了调试这个问题,我在脚本的第二行添加了&引用;集合-x";在bash和ksh中,不会为cron作业生成输出,bash,cron,ksh,Bash,Cron,Ksh,我有一个脚本,我正在调试 该脚本完全可以从命令行运行,但在cron中使用相同的参数调用时,会出现无法传输文件的特定于应用程序的错误 为了调试这个问题,我在脚本的第二行添加了set-x。现在,当我从命令行运行它时,我得到了很多详细的调试输出 从cron中,我得到了原始的特定于应用程序的错误,而没有所有调试输出 我已尝试将shebang行从#更改为/bin/ksh至#/bin/ksh-x,我甚至尝试使用/bin/ksh-x/usr/local/bin/theapp运行cron作业 我没有得到调试输出
set-x
。现在,当我从命令行运行它时,我得到了很多详细的调试输出
从cron中,我得到了原始的特定于应用程序的错误,而没有所有调试输出
我已尝试将shebang行从#更改为/bin/ksh
至#/bin/ksh-x
,我甚至尝试使用/bin/ksh-x/usr/local/bin/theapp
运行cron作业
我没有得到调试输出
我还尝试通过将2>&1
附加到cron作业来重定向STDERR
我是否错过了一些获取调试输出的cron魔法
更新:@barmar是正确的,我应该发布我的cron行:
*/5****/bin/bash-x/usr/local/bin/myapp 2>&1
cron行:
*/5****/bin/bash-x/usr/local/bin/myapp 2>&1
即使将STDERR重定向到STDOUT,也不会生成调试输出
我最终放弃了,并做到了:
*/5****/bin/bash-x/usr/local/bin/myapp>/tmp/cron.log 2>&1
输出显示在日志中
Meh.这与
bash
有什么关系?您是否也尝试将其从ksh
脚本更改为bash
脚本?您是否查看了电子邮件?任何未重定向的输出都将通过邮件发送给您。我刚刚使用/path/to/script>script.out 2>script.err进行了测试。-x
输出在脚本中。err
。请将整个crontab行添加到问题中,我们需要确保您使用了正确的重定向语法。我知道@rojomoke。任何未重定向的输出都将通过电子邮件发送给您。所以,如果STDERR被重定向到STDOUT,它应该通过电子邮件发送给我。事实并非如此。我能在这个服务器上看到STDERR的唯一方法是将它重定向到一个文件。我想这可能是Ubuntu的怪异之处。不管怎样,我都得到了我需要的。谢谢