我每4天运行一次脚本
0 */96 * * * /path/to/script.sh但是,我想要抵消这一点,这样我可以每4天运行第二个脚本,但与第一个脚本间隔2天。因此最终的结果将是
Script 1
wait 2 days
Script 2
wait 2 days
Script 1
wait 2 days
Script 2这种调度有语法吗?我想这就像
0 48+*/96 * * * /path/to/script2.sh发布于 2020-06-03 11:46:00
我相信在crontab中没有办法跨越日期选择器和时间选择器。也没有任何方法干净地处理月/周/日模型。
最简单的方法是提前安排任务,让他们检查是否“今天是一天”。如果无法更改任务,请在适当的脚本中包装它们。在crontab命令行中处理日期检查是最后的手段。
您的签入bash将获得秒后的时代,转换为天,并作出模数检查。您需要手动校准您的4天序列(0,1,2,3)为一次,这取决于您的两个基本日期的系列。
Paul--) cat day4
#! /bin/bash
Day=$(( $( date '+%s' ) / 86400 ))
(( Day % 4 == 0 )) || exit 0
printf 1>&2 'Starting task for day %d (%d)\n' "${Day}" "$(( Day % 4 ))"
Paul--) ./day4
Starting task for day 18416 (0)
Paul--) https://unix.stackexchange.com/questions/590498
复制相似问题