首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >延迟/偏移crontab */x调度一定时间

延迟/偏移crontab */x调度一定时间
EN

Unix & Linux用户
提问于 2020-06-02 20:26:46
回答 1查看 656关注 0票数 2

我每4天运行一次脚本

代码语言:javascript
复制
0 */96 * * * /path/to/script.sh

但是,我想要抵消这一点,这样我可以每4天运行第二个脚本,但与第一个脚本间隔2天。因此最终的结果将是

代码语言:javascript
复制
Script 1
wait 2 days
Script 2
wait 2 days
Script 1
wait 2 days
Script 2

这种调度有语法吗?我想这就像

代码语言:javascript
复制
0 48+*/96 * * * /path/to/script2.sh
EN

回答 1

Unix & Linux用户

发布于 2020-06-03 11:46:00

我相信在crontab中没有办法跨越日期选择器和时间选择器。也没有任何方法干净地处理月/周/日模型。

最简单的方法是提前安排任务,让他们检查是否“今天是一天”。如果无法更改任务,请在适当的脚本中包装它们。在crontab命令行中处理日期检查是最后的手段。

您的签入bash将获得秒后的时代,转换为天,并作出模数检查。您需要手动校准您的4天序列(0,1,2,3)为一次,这取决于您的两个基本日期的系列。

代码语言:javascript
复制
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--) 
票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/590498

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档