Có vẻ như cron không $BPY
được xác định. Có some_script.py
cần phải được thực hiện? Mục đích của nó là $BPY
gì? Ngoài ra, bạn có thể cần đường dẫn đầy đủ của tập lệnh, không chỉ tên của tập lệnh.
Giả sử đó some_script.py
là tập lệnh thực thi dự định thực sự, sau đó thử chỉ thực hiện tập lệnh đó (với đường dẫn đầy đủ !!)
Trong các bình luận của bạn bên dưới câu trả lời này, bạn đã nói rằng đó $BPY
là đường dẫn của Python. Thay vì làm điều đó, bạn nên sử dụng một shebang
để chỉ định đường dẫn đầy đủ của trình thông dịch sẽ được sử dụng. Một con trăn chỉ định shebang phổ biến là : #!/usr/bin/python
. Đây phải là dòng đầu tiên của some_script.py
tập tin của bạn .
Theo như cú pháp ...
Định dạng cron là một cách đơn giản, nhưng mạnh mẽ và linh hoạt để xác định thời gian và tần suất của các hành động khác nhau.
định dạng cron bao gồm các trường được phân tách bằng khoảng trắng:
[Min] [Hr] [Ngày trong tháng] [Tháng trong năm] [Ngày trong tuần]
Sơ đồ sau đây cho thấy những gì nó bao gồm:
* * * * *
| | | | |
| | | | + ---- Ngày trong tuần (phạm vi: 0-6, 0 đứng vào Chủ nhật; Thứ Hai, Thứ ba, v.v.
| | | | Hầu hết các hệ điều hành công nhận Chủ nhật là 0 hoặc 7)
| | | + ------ Tháng trong năm (phạm vi: 1-12 hoặc tháng 1, tháng 2, v.v.)
| | + -------- Ngày trong tháng (phạm vi: 1-31)
| + ---------- Giờ (phạm vi: 0-23)
+ ------------ Phút (phạm vi: 0-59)
Bất kỳ trường nào trong số 6 trường này có thể là dấu hoa thị ( *
). Điều này có nghĩa là toàn bộ phạm vi của các giá trị có thể, tức là mỗi phút, mỗi giờ, v.v. Trong bốn trường đầu tiên.
Bất kỳ trường nào cũng có thể chứa danh sách các giá trị được phân tách bằng dấu phẩy, (ví dụ 1,3,7
) hoặc một phạm vi giá trị (hai số nguyên được phân tách bằng dấu gạch nối, ví dụ 1-5
).
Sau dấu hoa thị ( *
) hoặc một phạm vi giá trị, bạn có thể sử dụng ký tự /
để chỉ định rằng các giá trị được lặp đi lặp lại với một khoảng nhất định giữa chúng. Ví dụ: bạn có thể viết 0-23/2
trong trường Giờ để chỉ định rằng một số hành động nên được thực hiện mỗi hai giờ (nó sẽ có tác dụng tương tự như 0,2,4,6,8,10,12,14,16,18,20,22
). Giá trị */4
trong trường Phút có nghĩa là hành động nên được thực hiện cứ sau 4 phút. 1-30/3
có nghĩa giống như 1,4,7,10,13,16,19,22,25,28
.
Trong Tháng và Ngày của lĩnh vực tuần, bạn có thể sử dụng tên của tháng hoặc các ngày trong tuần viết tắt là ba chữ cái đầu tiên ( Jan
, Feb
, ..., Dec
hay Mon
, Tue
, ..., Sun
) thay vì giá trị số của họ.
Ngoài ra, bạn có thể sử dụng các từ khóa đặc biệt thay cho 5 trường đầu tiên được chỉ định ở trên:
chuỗi ý nghĩa
------ -------
@reboot Chạy một lần, lúc khởi động.
@yearly Chạy mỗi năm một lần, "0 0 1 1 *".
@annual (giống như @yearly)
@monthly Chạy mỗi tháng một lần, "0 0 1 * *".
@weekly Chạy mỗi tuần một lần, "0 0 * * 0".
@d Daily Chạy mỗi ngày một lần, "0 0 * * *".
@midnight (giống như @d Daily)
@hourly Chạy mỗi giờ một lần, "0 * * * *".
Định dạng thay thế này không được hỗ trợ trong các hệ điều hành cũ, độc quyền như SCO Unix.