ฉันต้องการให้สคริปต์ทำงานวันละครั้งทุกวันเริ่มตั้งแต่เวลา 0900 ถึง 1200
ฉันไม่แน่ใจเกี่ยวกับไวยากรณ์ของเส้นประอย่างสมบูรณ์ - หมายความว่าสคริปต์จะทำงานทุกชั่วโมงระหว่าง9-12
หรือจะเริ่มต้นแบบสุ่มระหว่าง9-12
? เพราะฉันต้องการหลัง
ฉันต้องการให้สคริปต์ทำงานวันละครั้งทุกวันเริ่มตั้งแต่เวลา 0900 ถึง 1200
ฉันไม่แน่ใจเกี่ยวกับไวยากรณ์ของเส้นประอย่างสมบูรณ์ - หมายความว่าสคริปต์จะทำงานทุกชั่วโมงระหว่าง9-12
หรือจะเริ่มต้นแบบสุ่มระหว่าง9-12
? เพราะฉันต้องการหลัง
คำตอบ:
ฉันไม่เคยเห็นการใช้ 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
ฉันสิ้นสุดมีข้อกำหนดที่คล้ายกันสำหรับสคริปต์หลาม แต่จบลงด้วยการดำเนินการนี้ผ่านสคริปต์ตัวเองโดยใช้ฟังก์ชั่นแบบสุ่ม + นอนแล้วเปิดตัว cron job @ midnight
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
ทะเลาะกับยำหรือการ--splay
ทะเลาะกับพ่อครัว - ลูกค้า) แต่สำหรับผู้ที่ไม่มีเวลาในการดำเนินการแบบสุ่มจะเป็นคุณสมบัติที่มีประโยชน์