Điểm:0

Crontab - ngày trong tháng dường như ghi đè ngày trong tuần?

lá cờ sa

Tôi có năm máy chủ đang chạy cụm cửa hàng sự kiện. Tôi muốn chạy lệnh crontab trên mỗi lệnh vào những ngày riêng biệt.

  1. Chạy vào thứ Hai
  2. Chạy vào thứ ba vân vân

Nhưng tôi cũng muốn chạy một lệnh khác vào tuần thứ tư hàng tháng.

Tôi thiết lập chúng như thế này, nghĩ rằng nó sẽ hoạt động - và kiểm tra crontab.guru đã xác nhận những gì tôi nghĩ sẽ xảy ra;

Máy 1-5:

  1. 30 6 1-21 * Thứ hai /lệnh-đầu tiên-để-chạy
  2. 30 6 1-21 * Thứ ba /lệnh-chạy đầu tiên
  3. 30 6 1-21 * Thứ tư /lệnh-chạy đầu tiên
  4. 30 6 1-21 * Thu /lệnh-đầu-tiên-chạy
  5. 30 6 1-21 * Thứ sáu /lệnh-chạy đầu tiên

Sau đó, một lệnh tương tự trên mỗi lệnh cho Tuần 4:

  1. 30 6 22-29 * Thứ hai /tuần4-lệnh-để-chạy (lặp lại DOW như trên)

Vì vậy, cho hôm nay - Thứ Sáu ngày 19, tôi chỉ muốn máy số 5 chạy /lệnh-lệnh-to-chạy đầu tiên lúc 06:30 và bốn máy còn lại không làm gì cả.

Tôi đã khá tự tin rằng điều này sẽ hoạt động như mong đợi, nhưng có vẻ như tất cả năm máy đã chạy /first-command-to-run sáng nay, thay vì chỉ máy hôm thứ Sáu.

Tuy nhiên, không có lệnh nào chạy /week4-command-to-run, vì vậy ngày trong tháng nằm ngoài phạm vi 22-29 đang ngăn chặn điều đó một cách chính xác.

Bây giờ tôi đang tự hỏi liệu bằng cách chỉ định phạm vi ngày trong tháng, điều này có khiến cron bỏ qua Ngày trong tuần hay không. Trường hợp đó như thế nào? Nếu không, tôi đang làm gì sai?

Os là Rocky 8.4

(Lưu ý: Tôi biết và đồng ý với thực tế là ngày chính xác trong tháng có thể nằm ngoài các tuần nghiêm ngặt.)

Simon Avery avatar
lá cờ sa
Nhờ @archemar cho con trỏ. Đối với bất kỳ ai theo dõi, điều này sẽ làm như tôi mong đợi: 30 6 1-21 * * [ "$(date --date='Today' '+\%a')" = "Tue" ] && /first-command-to-run
Điểm:0
lá cờ mx

dựa theo người đàn ông 5 crontab trên Ubuntu.

Lưu ý: Ngày thực hiện lệnh có thể được chỉ định bởi hai các trường â ngày trong tháng và ngày trong tuần. Nếu cả hai các trường bị hạn chế (nghĩa là không bắt đầu bằng *), lệnh sẽ được chạy khi một trong hai trường khớp với thời gian hiện tại.

Vui lòng kiểm tra trang man crontab địa phương của bạn.

Simon Avery avatar
lá cờ sa
Gah, Không biết làm thế nào tôi bỏ lỡ điều đó. Cảm ơn đã trả lời, đó chắc chắn là vấn đề. Có vẻ như tôi sẽ cần thực hiện một số logic thông minh hơn trên chính tập lệnh.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.