crontab 不工作

crontab 不工作

我正在尝试执行基本的关闭 crontab 以在晚上 10 点运行 MF。所以我做了以下事情:

sudo crontab -e

进入 crontab 后,我添加了以下行:

0 22 * * 1-5 shutdown now

作业似乎运行不正常,我找不到任何错误/var/log/syslog。这里面有什么明显的错误吗?

答案1

您的问题可能是 crontab 文件中的 PATH 受到限制,并且不包括/sbin最有可能关闭的位置。

因此,您应该使用完整路径进行关闭(您可以使用 检查sudo which shutdown):

0 22 * * 1-5 /sbin/shutdown now

man 5 crontab

特别注意,如果您想要“/usr/bin:/bin”以外的 PATH,则需要在 crontab 文件中设置它。

/sbin/shutdown您可以执行以下操作,而不是指定:

PATH = /sbin:$PATH
0 22 * * 1-5 shutdown now

答案2

  1. 您可以尝试列出执行时间cronlist看看它是否会按您的预期运行。据我所知,该cron作业将于周一至周五 22:00 运行;那是你要的吗?
  2. shutdown now如果您以普通用户身份执行它会打印什么?
  3. 打印什么service cron status?如果没有显示cron start/running,您必须使用 重新启动它service cron start
  4. 机器上的时钟是否正确?它可能未配置或不同步,导致作业在完全错误的日期或时间运行。
  5. 您是否有任何错误消息,例如PAM bad jump in stack/var/log/auth.log?该帖子包含大量调试信息和要尝试的事情。

答案3

检查 tail -n 100 /var/log/cron

您是否尝试使用普通用户或 root 用户运行此 cron?

答案4

您无权使用 shutdown 命令。尝试执行以下命令:

sudo chmod u+s /sbin/shutdown

然后在你的 crontab 中指定关闭的完整路径

0 22 * * 1-5 /sbin/shutdown now

相关内容