Cú pháp ngày của tuần


204

Trong crontab không the Day của trường tuần chạy từ 0 - 6hay 1 -7?

Tôi đang thấy thông tin mâu thuẫn về điều này. tiểu bang wikipedia 0-6và các trang web khác tôi đã thấy là 1-7.

Ngoài ra những gì sẽ là ngụ ý hoặc sử dụng 0hoặc 7không chính xác? tức là cron vẫn chạy?

Câu trả lời:


373

07cả hai đều đứng cho Chủ nhật, bạn có thể sử dụng cái bạn muốn, vì vậy viết 0-6 hoặc 1-7 có cùng kết quả.

Ngoài ra, theo đề nghị của @Henrik, nó có thể thay thế số bằng tên rút gọn của ngày, chẳng hạn như MON, THUvv,:

0 - Sun      Sunday
1 - Mon      Monday
2 - Tue      Tuesday
3 - Wed      Wednesday
4 - Thu      Thursday
5 - Fri      Friday
6 - Sat      Saturday
7 - Sun      Sunday

Đồ họa:

 ┌────────── minute (0 - 59)
 │ ┌──────── hour (0 - 23)
 │ │ ┌────── day of month (1 - 31)
 │ │ │ ┌──── month (1 - 12)
 │ │ │ │ ┌── day of week (0 - 6 => Sunday - Saturday, or
 │ │ │ │ │                1 - 7 => Monday - Sunday)
 ↓ ↓ ↓ ↓ ↓
 * * * * * command to be executed

Cuối cùng, nếu bạn muốn chỉ định từng ngày, bạn có thể tách các ngày bằng dấu phẩy, ví dụ như SUN,MON,THUsẽ chỉ thực hiện lệnh vào các ngày chủ nhật, thứ hai vào thứ năm.

Bạn có thể đọc thêm chi tiết trong bài viết của Wikipedia về Cron .


4
ok đó là những gì tôi đã không nhận ra Chủ nhật có thể là 0 hoặc 7. cảm ơn
Marty Wallace

15
Xin lưu ý rằng bạn không thể làm : Sat-Sun, chỉ 6-7hoặcSat,Sun
pkowalchot

Bạn có thể xác nhận đây là trường hợp không nhạy cảm? Bạn chuyển một vài lần trong SUN, Sun, Sundaytrong trả lời của bạn
MichaelChirico

1
@MichaelChirico oh, điểm tốt. Kiểm tra bài viết của Wikipedia về Cron tôi đã đọc Chữ viết tắt của tháng và ngày trong tuần không phân biệt chữ hoa chữ thường .
fedorqui 'SO ngừng làm hại'

104
    :-) Sunday    |    0  ->  Sun
                  |  
        Monday    |    1  ->  Mon
       Tuesday    |    2  ->  Tue
     Wednesday    |    3  ->  Wed
      Thursday    |    4  ->  Thu
        Friday    |    5  ->  Fri
      Saturday    |    6  ->  Sat
                  |  
    :-) Sunday    |    7  ->  Sun

Như bạn có thể thấy ở trên, và như đã nói trước đó, các con số 07cả hai đều được gán cho Chủ nhật. Ngoài ra còn có các ngày viết tắt tiếng Anh trong tuần được liệt kê, cũng có thể được sử dụng trong crontab.

Ví dụ về sử dụng số hoặc viết tắt

15 09 * * 5,6,0             command
15 09 * * 5,6,7             command
15 09 * * 5-7               command
15 09 * * Fri,Sat,Sun       command

Bốn ví dụ làm tất cả giống nhau và thực hiện một lệnh vào mỗi Thứ Sáu, Thứ Bảy và Chủ Nhật lúc 9.15 giờ.

Chi tiết

Có hai số 07cho Chủ nhật có thể hữu ích để viết các phạm vi ngày trong tuần bắt đầu bằng 0hoặc kết thúc bằng 7. Vì vậy, bạn có thể viết dãy bắt đầu với Chủ Nhật hoặc kết thúc với nó, như 0-2hoặc 5-7ví dụ (dãy phải bắt đầu với số lượng thấp hơn và phải kết thúc bằng cao hơn). Các chữ viết tắt không thể được sử dụng để xác định một phạm vi ngày trong tuần.


1
Để rõ ràng, các chữ viết tắt không thể được sử dụng để xác định phạm vi ngày trong tuần. tuyên bố ở đây dường như là một cách để nói rằng người ta không thể tách các chữ viết tắt bằng dấu gạch nối, trừ các ký tự, chỉ dấu phẩy. Nói cách khác, Fri,Sat,Sunkhông thể rút ngắn Fri-Sun.
Patrick Dark

8

Bạn cũng có thể sử dụng tên ngày như MonThứ Hai, TueThứ Ba, v.v ... Nó thân thiện với con người hơn.


Điều này sẽ không làm việc cho một số phân phối; thử nghiệm với Ubuntu 14.04.3 LTS, tôi đã nhận được "/tmp/crontab.Nuq9GE/crontab":24: ngày tồi tệ trong tuần"
0x4B1D

3
@Nikita kiểm tra lỗi chính tả hoặc khoảng trắng thừa. Tôi có cả "Thứ hai" và "Thu" trong crontab của mình trên Ubuntu 14.04.3 và cả hai đều hoạt động tốt. Tôi nghi ngờ nếu có khoảng trống giữa bất kỳ nhân vật nào, bạn sẽ gặp lỗi.
Dale Anderson
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.