Відповіді:
Я ніколи не бачив впровадження Cron, який має спосіб запустити роботу у випадковий час. Це дивна вимога. Як зазначається в документації, 9-12
це ярлик 9,10,11,12
і означає щогодини з 9 до 12.
Якщо ви хочете виконати завдання у випадковий час, запустіть його на початку інтервалу та додайте випадкову затримку. Наприклад, для запуску в довільну годину між 9 і 12:
SHELL=/bin/bash
0 9 * * * sleep $((3600 * (RANDOM % 4))); do_stuff
Зверніть увагу, що RANDOM
потрібні bash або ksh, вони можуть бути недоступні в оболонці за замовчуванням.
Якщо ви хочете запуститись у довільний час між 9 і 12, з другою роздільною здатністю, ви можете використовувати RANDOM % 10800
як затримку, але, оскільки RANDOM
знаходиться в діапазоні 0..32767, буде ухил до затримок між 0 і 32768% 10800 = 368. Щоб уникнути цього упередження:
SHELL=/bin/bash
0 9 * * * max=$((32768/10800*10800)); while delay=$RANDOM; ((delay > max)); do :; done; sleep $((delay % 10800)); do_stuff
У мене з’явилася аналогічна вимога до скриптів python, але я реалізував це за допомогою самого сценарію, використовуючи випадкові + функції сну, потім запустив роботу cron @ півночі
from time import sleep
import random
sleep_time = random.randint(0,7200) #7200 seconds = 2 hours * 60 min * 60 sec
print(sleep_time)
sleep(sleep_time)
--randomwait
аргумент yum чи--splay
аргумент chef-client), але для тих, хто цього не робить, корисним елементом у планувальнику завдань може стати випадковий час виконання.