답변:
임의의 시간에 작업을 실행할 수있는 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 = 이 편견을 피하려면 :
SHELL=/bin/bash
0 9 * * * max=$((32768/10800*10800)); while delay=$RANDOM; ((delay > max)); do :; done; sleep $((delay % 10800)); do_stuff
파이썬 스크립트에 비슷한 요구 사항이 있었지만 임의 + 절전 기능을 사용하여 스크립트 자체를 통해 구현 한 다음 @ 자정에 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에 대한 인수)이 있지만 그렇지 않은 응용 프로그램의 경우 임의 실행 시간이 작업 스케줄러에 유용한 기능입니다.