我有一个包含命令的bash脚本:
mv old.txt new.txt
Old.txt不存在,所以当我从命令行运行脚本时,它会给我一条消息:
mv: cannot stat ``test1.txt': No such file or directory
但是,如果我从cron调用脚本,并尝试将stderr和stdout重定向到日志文件,我最终会得到一个完全空白的日志(在这种情况下这是以root用户身份完成的,但我仍然遇到此问题它在我的用户crontab中设置。
Crontab条目:
# m h dom mon dow command
0 * * * * /home/beekguk/scripts/test.sh 2>&1 >> /home/beekguk/logs/test.log
那么 - 在这种情况下stderr会去哪里?它会消失吗?我已经在各种论坛上看到它被邮寄到root,但我不确定这意味着什么或如何找到它。
我对Linux和bash的了解已经足够让我陷入热水中,我有一种感觉,这可能最终导致我捶打我的额头并去“Doh!”,但我想我还是试一试
编辑:我通过纠正我的crontab条目上的重定向来解决这个问题:
0 * * * * /home/beekguk/scripts/test.sh >> /home/beekguk/logs/test.log 2>&1
...但是如果我忘记重定向它们,我仍然很好奇这些消息会在哪里发生!
对于将来阅读此内容的人:请注意,我同意接受了有用的评论主题的答案。
答案 0 :(得分:3)
您的重定向已被撤消。因此标准错误是cron作业的标准输出,通常邮寄给拥有该作业的人。