Chạy một kịch bản hàng ngày bằng cách sử dụng một cronjob


9

Tôi cần mã chính xác mà tôi sẽ sử dụng vì tôi không thể tìm ra nó. Tôi sử dụng crontab -eđể thiết lập một công việc định kỳ nhưng khi tôi lưu nó, nó không bao giờ hoạt động. Tôi cũng đang cố chạy một tệp được gọi newmail.shtừ người dùng root.


Bạn đã tìm thấy câu trả lời cho câu hỏi của bạn?
uốn cong

Câu trả lời:


10

Nếu bạn muốn tác vụ chạy mỗi ngày vào lúc 3:17 chiều, bạn sẽ sử dụng:

17 15 * * * root newmail.sh

Điều này cho biết "chạy newmail.sh là root mỗi ngày trong tuần, mỗi ngày trong tháng, mỗi tháng vào lúc 3:17 chiều."

phút giờ dom tháng dow người dùng cmd

phút - Điều này kiểm soát phút nào trong giờ lệnh sẽ chạy và nằm trong khoảng '0' đến '59'

giờ - Điều này kiểm soát giờ nào lệnh sẽ chạy và được chỉ định trong đồng hồ 24 giờ, các giá trị phải nằm trong khoảng từ 0 đến 23 (0 là nửa đêm)

dom - Đây là ngày của tháng, mà bạn muốn lệnh chạy, ví dụ: để chạy lệnh vào ngày 19 mỗi tháng, thì dom sẽ là 19.

tháng Đây là tháng một lệnh được chỉ định sẽ chạy, nó có thể được chỉ định bằng số (0-12) hoặc là tên của tháng (ví dụ: tháng 5)

dow - Đây là Ngày trong tuần mà bạn muốn một lệnh được chạy, nó cũng có thể là số (0-7) hoặc là tên của ngày (ví dụ: mặt trời).

người dùng - Đây là người dùng chạy lệnh.

cmd - Đây là lệnh mà bạn muốn chạy. Trường này có thể chứa nhiều từ hoặc khoảng trắng.

từ: http://www.unixgeek.org/security/newbie/unix/cron-1.html


trên Ubuntu 16 và sau đó, định dạng mới là: "lệnh mh dom mon dow"
uốn cong

trên Ubuntu 19 phút là lần đầu tiên. Ngoài ra, nó cảnh báo bạn về thời gian không chính xác.
kelalaka

5
sudo crontab -e

Thêm những dòng này vào cuối tập tin

*/1 * * * * wget -O /dev/null  project_crone_URL

(Chạy cron mỗi lần trong 1 phút)

0 0 * * * wget -O /dev/null  project_crone_URL

(Chạy cron mỗi lần một lần trong 24 giờ)

lưu tập tin

Bắt đầu crontab bằng lệnh này

sudo /etc/init.d/cron start

Dừng crontab bằng lệnh này

sudo /etc/init.d/cron stop

Khởi động lại crontab bằng lệnh này

sudo /etc/init.d/cron restart

1

Nếu bạn sử dụng crontab -eUbuntu 16.0+ sẽ không có trường người dùng, vì vậy định dạng chính xác là:

17 15 * * * newmail.sh

Điều này nói "chạy newmail.sh mỗi ngày trong tuần, mỗi ngày trong tháng, mỗi tháng vào lúc 3:17 chiều."

Các cách khác câu trả lời của dm78 là chính xác và chứa mô tả chính xác của định dạng.

Ngoài ra nếu có sự cố và bạn đã cài đặt hệ thống thư, nó sẽ gửi cho bạn một tin nhắn. Để biết thêm thông tin xem câu trả lời này

Nếu bạn quan tâm đến việc đăng nhập cronjobs, bạn có thể sử dụng câu trả lời này .


1
Nó phụ thuộc vào đó crontab bạn chỉnh sửa. Các crontab -ethingy không có một lĩnh vực sử dụng (như bạn nói chính xác) nhưng các tập tin /etc/crontab(các cái gọi là hệ thống crontab) và các tập tin dưới đây /etc/cron.d làm có một trường người dùng.
PerlDuck
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.