是否可以安排一个 cron 作业每两周运行一次?

Ank*_*jee 10 cron

有没有办法安排一个 cron 作业每两周运行一次?

(我能想到的一种方法是在 内crontab为“日期”添加两个条目......)

Gil*_*il' 14

不,cron 只知道星期几、月份中的哪一天和月份。

每月在固定日期(例如第 1 天和第 16 天)运行两次命令很容易:

42 4 1,16 * *  do_stuff
Run Code Online (Sandbox Code Playgroud)

每隔一周运行一次命令是另一回事。你能做的最好的事情是每周运行一个命令,每隔一周让它不做任何事情。在 Linux 上,您可以将自纪元 ( date +%s)以来的秒数除以一周中的秒数,以获得一个每周翻转奇偶校验的数字。注意,在 crontab 中,%需要转义(cron%在执行命令之前变成换行符)。

42 4 * * 1  case $(($(date +\%s) / (60*60*24*7))) in *[02468]) do_stuff;; esac
Run Code Online (Sandbox Code Playgroud)

  • 根据我手头的文档,cron 将百分号转换为换行符 * 并* 将第一个百分号之后的所有内容通过管道传输到命令中。我想这并不重要;我想我从来没有心甘情愿地使用过这个功能。 (2认同)