使用Linux Cron每隔两周运行任务

问题描述 投票:0回答:1

我有一台运行Linux操作系统的服务器。我正在尝试安排一个Cron作业,以便在周二上午9点每两周(两周一次)运行一次任务。我只能通过注释(如果我不想在本周运行作业)和取消注释(如果我想在本周运行作业)手动运行任务,如下所示:

0 9 * * 2   root    java -jar test.jar   // will run

# 0 9 * * 2 root    java -jar test.jar   // will not run 

我尝试使用以下cron作业:

0 9 * * 2  case $(($(date +\%s) / (60*60*24*7))) in *[02468]) root  java -jar test.jar 

但是此cron脚本似乎不起作用。

任何想法

linux cron jobs
1个回答
0
投票
0 4 * * 2 test $((10#$(date +\%W)\%2)) -eq 1 && execute_cmd

我们首先使用date来获取星期数并正确设置格式,然后使用“ test”命令完成“二分之一的时间”。

'test'根据给定的表达式求值为true或false,在这里,它求$((10#$(date + \%W)\%2))等于1(因此为-eq 1),否则为如果周数为奇数,则返回true。 

因此,此crontab将在奇数周的星期二(2)的凌晨4点(0 4)执行。

此处有更多详细信息:https://serverfault.com/questions/633264/cronjob-run-every-two-weeks-on-saturday-starting-on-this-saturday

© www.soinside.com 2019 - 2024. All rights reserved.