每月第一个星期三关闭 Linux 服务器

每月第一个星期三关闭 Linux 服务器

我已经写了一个 crontab 条目,如下所示:

00 19 1-7 * 3 /sbin/init 0

它应该在每个月的第一个星期三关闭我的 Linux 服务器。不幸的是,服务器今天(星期四)关闭了。有人能告诉我为什么会发生这种情况吗?请告诉我如何修复它。

答案1

crontab(5)

   Note: The day of a command's execution can be specified by two fields --
   day of month, and day of week.  If  both  fields  are  restricted  (ie,
   aren't  *),  the command will be run when either field matches the cur-
   rent time.

这意味着你的定时任务输入将无法按预期工作。该命令将每月 1 日至 7 日每天运行,此外每周三也运行。

由于上述情况,计划任务无法单独判断是否是该月的第一个星期三。但是,您可以使用以下方法检查一个条件:计划任务并检查另一个测试日期

00 19 1-7 * * [ $(/usr/bin/date +\%w) = 3 ] && /sbin/init 0

怎么运行的:

  • 该命令将从每月1号到7号每天执行。

  • $(/usr/bin/date +\%w)返回星期几。

  • [ ... = 3 ] &&检查该星期几是否是星期三 (3)。

  • 如果是,/sbin/init 0则执行。

请注意,您必须转义百分号,因为它对于计划任务

相关内容