Как выполнить задание cron с циклическим аргументом?

Как выполнить задание cron с циклическим аргументом?

Я хочу запускать bash-скрипт, скажем, каждые 5 минут, с предопределенным аргументом в соответствии с циклом.

Например, я хочу использовать в качестве аргумента 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, которое вам нравится.

Связанный контент