如果我们在 crontab 中输入错误,会发生什么

如果我们在 crontab 中输入错误,会发生什么

如果我在输入时犯了一个错误crontab,例如发出不存在的命令coppy而不是cp,那么执行任务时会发生什么?

答案1

首先要注意的是,每个cron作业都在 shell 中运行(即默认情况shdash,可以通过SHELL内部的环境变量进行更改crontab)。两种情况:

  • MAILTO环境变量设置:一封包含错误(STDERR)(以及STDOUT,如果有)的邮件将被发送到上述地址,就像你在(使用的)shell 中运行它一样

  • MAILTO环境变量为空:没什么,错误消息将被丢弃,因为没有可用的消费者

  • MAILTO环境变量未设置:STDERR(和STDOUT,如果有)将被发送到本地用户的邮箱

在所有情况下,/var/log/syslog都会有相关的错误信息。


请注意,人们经常使用 shell 重定向将 STDOUT/STDERR 保存在文件中,例如:

* * * * * your_command >/tmp/cron_msg 2>&1

或者如果MAILTO设置了,则不要在邮件中使用 STDOUT/STDERR,因为主要目的是运行命令,如果是这样,发送到以下位置/dev/null也是一种常见的趋势:

* * * * * your_command >/dev/null 2>&1

相关内容