我的stderr在哪里?

时间:2011-03-22 21:16:22

标签: bash cron

我有一个包含命令的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 ...但是如果我忘记重定向它们,我仍然很好奇这些消息会在哪里发生!

对于将来阅读此内容的人:请注意,我同意接受了有用的评论主题的答案。

1 个答案:

答案 0 :(得分:3)

您的重定向已被撤消。因此标准错误是cron作业的标准输出,通常邮寄给拥有该作业的人。