我的 cronjob 选项卡中的这一行是什么意思?

我的 cronjob 选项卡中的这一行是什么意思?

*/5 * * * * /usr/local/bin/php somephpfile.php>> /dev/null 2>&1

dev/null 2 到底是什么意思?

谢谢

答案1

它将 STDER(标准错误)重定向到 STDOUT(标准输出)。简而言之,它们都重定向到 /dev/null,这意味着程序不会显示任何输出。

答案2

2>&1意思是“将 stderr 发送到 stdout。”

>>/dev/null表示“将 stdout 附加到 /dev/null”,这是一种通过将程序输出发送到 来隐藏程序输出的方法/dev/null,其唯一目的就是充当数据的黑洞。(严格来说,对于/dev/null>>/dev/null与 相同>/dev/null。)

这些规则是从右到左进行评估的,因此组合起来它们表示“隐藏输出到 stderr 和 stdout 的所有内容。” 一个常见的错误是以相反的顺序指定它们,这不会隐藏 stderr 输出。

/dev/null另外值得一提的是:您可以通过以下方式明确发送两个流1>/dev/null 2>/dev/null 或者 &>/dev/null而不是将 stderr 发送到 stdout 然后将 stdout 发送到/dev/null

答案3

它的意思是将标准错误和标准输出重定向为无(丢弃)。

相关内容