我想做一个每三天运行一次的 cron 表达式,如果你这样做0 8 */3 * *
,这意味着每个月的第三天 8:00 都会触发一个计时器,我希望如果我设置一个表达式,那么它将每 3 天准确运行一次,例如,从 1 月 23 日开始,因此,接下来的几天:26 日 29 日和 2 月 1 日。这可以做到吗?怎么做?有一个想法是在几分钟内完成,即*/4800 * * * *
理论上意味着每 3 天 8:00 触发一次
我想做一个每三天运行一次的 cron 表达式,如果你这样做0 8 */3 * *
,这意味着每个月的第三天 8:00 都会触发一个计时器,我希望如果我设置一个表达式,那么它将每 3 天准确运行一次,例如,从 1 月 23 日开始,因此,接下来的几天:26 日 29 日和 2 月 1 日。这可以做到吗?怎么做?有一个想法是在几分钟内完成,即*/4800 * * * *
理论上意味着每 3 天 8:00 触发一次
如果年底/年初的脚本执行转变不适合您,我会写一个小解决方案。
为此,您需要在脚本中取一个较大的值,无论年份或星期,都会计算该值。
因此,我们从1970-01-01 00:00:00 开始使用命令
date +%s
我们从这些秒数中得到天数并显示 3 的重数的余数
我们得到命令:
现在您可以在 cron 中创建运行命令
其中“/home/user/task/execute_script”是每三天运行一次的脚本或程序的路径。1 是用于比较结果余额的数字
接下来,用以下内容填充脚本/home/user/3day.sh
不要忘记给相应的组和用户运行 /home/user/3day.sh 的权限
因此,可以以 3 天的间隔添加不同日期的任务
这些任务中的每一项将每 3 天执行一次,但它们之间不会有重叠