Câu trả lời:
Tôi chưa bao giờ thấy một triển khai cron có cách để điều hành một công việc tại một thời điểm ngẫu nhiên. Đó là một yêu cầu kỳ lạ. Như tài liệu nêu, 9-12là một phím tắt cho 9,10,11,12, và có nghĩa là mỗi giờ từ 9 đến 12.
Nếu bạn muốn chạy một công việc tại một thời điểm ngẫu nhiên, hãy chạy công việc vào đầu khoảng thời gian và thêm một độ trễ ngẫu nhiên. Ví dụ: để chạy vào một giờ ngẫu nhiên trong khoảng từ 9 đến 12:
SHELL=/bin/bash
0 9 * * * sleep $((3600 * (RANDOM % 4))); do_stuff
Lưu ý rằng RANDOMyêu cầu bash hoặc ksh, nó có thể không có sẵn trong vỏ mặc định.
Nếu bạn muốn chạy vào thời gian ngẫu nhiên trong khoảng từ 9 đến 12, với độ phân giải thứ hai, bạn có thể sử dụng RANDOM % 10800làm độ trễ, nhưng vì RANDOMnằm trong phạm vi 0..32767, sẽ có sự sai lệch về độ trễ giữa 0 và 32768% 10800 = 368. Để tránh sự thiên vị này:
SHELL=/bin/bash
0 9 * * * max=$((32768/10800*10800)); while delay=$RANDOM; ((delay > max)); do :; done; sleep $((delay % 10800)); do_stuff
--randomwaitđối số với yum hoặc--splayđối số với đầu bếp-khách hàng), nhưng đối với những ứng dụng không có, thời gian thực hiện ngẫu nhiên sẽ là một tính năng hữu ích cần có trong lịch trình công việc.