crontab 制作定时任务,每 3 天执行一个备份脚本该怎么写?

我希望每隔 3 天执行 backup.sh,怎么个写法?
主要是 每隔 3 天 这个不知道怎么表达?

阅读 27.6k
2 个回答
0 0 */3 * * /path/to/backup.sh

其实,这样不是严格意义的每隔3天,因为第三位的*/3等同于1-31/3,也就是每个月第一天执行一次,然后第四天执行一次,第七天执行一次...以此类推

这样的话 对于每一个月来说,执行周期都是
1,4,7,10,13,16,19,22,25,28,31

对!没错,31号执行完,第二天1号会再执行一次的!

别问我为什么,crontab的天是相对于一个月来说的,如果想实现绝对意义的每隔3天,只能自己写程序判断,然后每天执行,脚本中判断距离上次执行不足3天直接退出

0 0 1,4,7,10,13,16,19,22,25,28 * * /bin/bash -l -c '/usr/bin/some_great_command'

这是用whenever生成的, https://github.com/javan/whenever

具体代码是这样的

every 3.days do
  command "/usr/bin/some_great_command"
end
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏