Cronjob 条目中的“/dev/null 2>&1”是什么意思?

Cronjob 条目中的“/dev/null 2>&1”是什么意思?

有人能向我解释一下下面的 cron 作业中“2>&1”的含义吗

0 23 * * * wget -q -O /dev/null "https://example.com/index.php" > /dev/null 2>&1

答案1

这意味着stderr2- 包含来自执行的命令或脚本的错误消息)被重定向(>&)到stdout1- 命令的输出),并且后者被重定向到/dev/null(空设备)。

这样,您就可以抑制执行命令可能发出的所有消息。在 cron 中,这样做通常是为了避免被来自服务脚本的大量不相关消息所淹没。不过,请小心谨慎,因为有些消息可能很重要。

有关输出重定向的更多信息,请参阅 Linux 文档项目这里这里. 空设备描述这里

答案2

我只是想稍微扩展一下@digijay 的回答,解释一下“什么> /dev/null 2>&1“ 但 ”为什么它在那里“。

1.Cron 操作将适当的数据写入不同的系统文件。例如,记录 cron 错误的热门目的地包括/var/log/cron/var/log/messages/var/log/syslog

2.默认情况下,cron jobs 会向执行 cronjob 的用户账户发送一封电子邮件。

因此,为了避免这种情况12(您既不想看到任何信息/错误日志,也不想收到来自 cron 的任何电子邮件,您只是希望 cron 默默地工作),您应该将stderr和重定向stdout/dev/null

相关内容