如何使用循环参数执行 cron 作业?

如何使用循环参数执行 cron 作业?

我想每 5 分钟运行一次 bash 脚本,并根据周期使用预定义的参数。

例如,我想使用 1、2、5、10、15、50、15、10、5、2 作为参数,然后再次开始循环。

理想情况下,参数存储在文件或脚本中,我可以在其中轻松编辑它们、添加或删除一些参数等。

我怎么做 ?


我可以用一个脚本、一个数组和一个来做到这一点,while [[ true ]]但我想知道我是否可以用 cron 来做到这一点。

答案1

实现这一目标的最有效且更简单的方法之一可能是让脚本处理跟踪幻数循环而不是使用参数。像这样的东西:

#!/bin/bash
sequence=(1 2 5 10 15 50 15 10 5 2)
if [[ -r /var/tmp/myjob.seq ]]; then
   seq="$(cat /var/tmp/myjob.seq)"
   if [[ $seq -lt $((${#sequence[@]}-1)) ]]; then
       nextseq=$(($seq+1))
   else
       nextseq=0
   fi
   echo $nextseq > /var/tmp/myjob.seq
else
   seq=0
   echo 1 > /var/tmp/myjob.seq
fi
magicnumber=${sequence[$seq]}

然后,您可以参考$magicnumber稍后的脚本,并使用您喜欢的任何 cron 计划。

相关内容