Intereting Posts
Форматировать диск через терминал rootfs Ошибка «Конфликтующие версии» при запуске eggdrop Инструмент, подобный Grep, для отображения определенной области текста относительно шаблона Как выполнить bash (в скрипте) с собственным файлом .bash_logout? Howto рекурсивно создает PDF-файлы thumnbails в командной строке Linux Действительно ли программное обеспечение действительно распознает реальное количество секторов в современных жестких дисках? Какие источники энтропии используются ядром Linux? как сказать crontab выполнить команду с этого момента Два бинарных пакета Debian с двумя версиями из одного источника Автоматизация SCP в производственной среде Меню GRUB не видно Где получить информацию о неисправном диске? Почему версия программного обеспечения i386 устанавливается в системе x86_64? Добавить путь к имени файла Монитор Intel HDMI не распознается

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

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

Например, я хочу использовать в качестве аргумента 1, 2, 5, 10, 15, 50, 15, 10, 5, 2, а затем снова запустить цикл.

В идеале аргументы хранятся в файле или в скрипте, где я могу легко редактировать их, добавлять или удалять некоторые и т. Д.

Как мне это сделать ?


Я мог бы сделать это с помощью одного скрипта, массива и while [[ true ]] но я хотел бы знать, могу ли я сделать это с помощью cron.

Вероятно, самым эффективным и одним из более простых способов добиться этого было бы заставить обработчик скрипта отслеживать цикличность магического числа, а не использовать аргументы. Что-то вроде этого:

 #!/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, который вам нравится.