题
如何将 crontab 设置为每天晚上 11:59 执行 X 脚本,而无需向我发送电子邮件或创建任何日志?
现在我的 crontab 看起来像这样
@daily /path/to/script.sh
解决方案
当您执行 crontab -e 时,请尝试以下操作:
59 23 * * * /usr/sbin/myscript > /dev/null
这意味着:在每个工作日的每个月的 59 分 23 小时 (*) 处,执行 myscript。
看 人 crontab 获取更多信息和示例。
其他提示
跟进 斯维里斯特的回答, 根据您的外壳, 2>&1 应该去 后 > /dev/null 否则您仍然会看到 stderr 的输出。
以下命令将使 stdout 和 stderr 静音:
59 23 * * * /usr/sbin/myscript > /dev/null 2>&1
以下命令使 stdout 静音,但 stderr 仍然会出现(通过 stdout):
59 23 * * * /usr/sbin/myscript 2>&1 > /dev/null
《高级 Bash 脚本指南》中有关 IO 重定向的章节 是一个很好的参考 - 搜索 2>&1 查看几个示例。
通过上述回复,您将收到包含写入 stderr 的任何文本的电子邮件。有些人也将其重定向,并确保脚本改为写入日志。
... 2>&1 ....
不隶属于 StackOverflow