Cách lên lịch tác vụ với Cron và CornTab [Linux]
Nếu bạn đã quen với Linux, bạn sẽ biết rằng Cron là ứng dụng được sử dụng để lên lịch và tự động hóa các tác vụ trong môi trường Linux. CronTab là lệnh được sử dụng để truy cập tệp Cron nơi người dùng có thể đặt và lên lịch tác vụ. Không, tôi đã không viết sai chính tả CronTab trong tiêu đề, CornTab là một giao diện dựa trên web cho phép bạn đặt lịch biểu và các lệnh của mình, sau đó chỉ cần sao chép và dán nó vào tệp cron của bạn.
Có các ứng dụng GUI khác được xây dựng để dễ dàng chỉnh sửa cron, chẳng hạn như Gnome-Schedule. Tuy nhiên, nếu bạn không muốn cài đặt bất kỳ ứng dụng mới nào Corntab là một giải pháp dựa trên web tuyệt vời, đặc biệt nếu bạn đang thiết lập một công việc cron trên máy tính không có Lịch Gnome hoặc không tương thích với nó.
Việc sử dụng cron là khá rõ ràng, bất cứ điều gì từ lập lịch trình sao lưu để chạy tập lệnh tùy chỉnh tại thời điểm cụ thể, để mở chương trình trên một lịch trình, cron là cách để làm cho nó được thực hiện.
Hãy bắt đầu với việc lập kế hoạch cho một nhiệm vụ mà chỉ đơn giản là tạo một dấu thời gian mỗi phút vào một tệp nhật ký, trước tiên sử dụng dòng lệnh / dòng lệnh. Sau đó, chúng tôi sẽ chạy qua các bước tương tự bằng cách sử dụng Corntab, vì vậy bạn có thể thấy nó dễ sử dụng như thế nào. Tạo một dấu thời gian hoặc bất kỳ đầu ra nào cho tệp nhật ký là một cách tuyệt vời để kiểm tra rằng các cài đặt của bạn trong cron đang hoạt động, và tất nhiên để theo dõi lịch biểu của bạn trong tương lai.
Mở một thiết bị đầu cuối. Trước khi chúng tôi bắt đầu, tốt nhất là biết nơi để đi cho thông tin. Hướng dẫn cho crontab có thể được tìm thấy bằng cách gõ:
người đàn ông crontab
Chắc chắn, bạn có thể Google và tìm các hướng dẫn khác và có thể là các trang hướng dẫn sử dụng trực tuyến, nhưng nó luôn luôn tốt để biết cách của bạn xung quanh dòng lệnh!
Cú pháp cho cron là như sau:
crontab [-u người dùng] tập tin crontab [-u người dùng] [-i] {-e | -l | -r} [-s]
-l
tùy chọn làm cho crontab hiện tại được hiển thị trên đầu ra tiêu chuẩn.-r
tùy chọn làm cho crontab hiện tại bị loại bỏ.- Tùy chọn
-e
được sử dụng để chỉnh sửa crontab hiện tại bằng cách sử dụng một trình soạn thảo được chỉ định bởi các biến môi trường VISUAL hoặc EDITOR. - Tùy chọn
-u
chỉ định tên của người dùng có crontab cần được tinh chỉnh. Nếu tùy chọn này không được đưa ra, crontab sẽ sử dụng người dùng hiện tại đang thực hiện lệnh. -s
tùy chọn nối chuỗi ngữ cảnh bảo mật SELinux hiện tại dưới dạng thiết lập MLS_LEVEL vào tệp crontab trước khi chỉnh sửa / thay thế (xem tài liệu của MLS_LEVEL trong crontab. Điều này không được sử dụng trong tất cả các biến thể của Linux / cron).
Lưu ý rằng một số chương trình cần phải được thực hiện với quyền root. Trong trường hợp này, bạn sẽ cần phải thay đổi thành người dùng root bằng lệnh su
, hoặc sudo
sẽ hoạt động trong hầu hết các biến thể Linux (Debian, Ubuntu, Fedora).
Để chỉnh sửa loại crontab của bạn:
crontab -e
hoặc là
sudo crontab -e
Một số quy tắc cơ bản cho cron
- Một trường có thể là dấu hoa thị (*), dấu chấm luôn là chữ “đầu tiên”.
- m -minute (0-59)
- h -hour (0-23)
- ngày trong tháng (1-31)
- mon-tháng trong năm (1-12)
- ngày cuối tuần (0-6 với 0 = Chủ nhật)
- lệnh-ứng dụng, tập lệnh, v.v.
Mã ngắn nâng cao:
chuỗi ý nghĩa
—— ——-
@reboot Chạy một lần, khi khởi động.
@yearly Chạy mỗi năm một lần, “0 0 1 1 *”.
@ualually (giống như @yearly)
@monthly Chạy mỗi tháng một lần, “0 0 1 * *”.
@weekly Chạy một lần một tuần, “0 0 * * 0”.
@daily Chạy một lần một ngày, "0 0 * * *".
@midnight (giống như @daily)
@hourly Chạy mỗi giờ một lần, "0 * * * *"
Các giá trị được phân cách bằng dấu phẩy có thể được sử dụng để chạy nhiều hơn một cá thể của một lệnh cụ thể trong một khoảng thời gian.
Các giá trị được phân tách bằng dấu gạch ngang có thể được sử dụng để chạy lệnh liên tục.
Hãy thiết lập cronjob của chúng tôi.
Nếu bạn lần đầu tiên nhập crontab, bạn có thể sẽ được cung cấp một sự lựa chọn của trình soạn thảo để sử dụng. Cảm thấy tự do để chọn bất kỳ, nhưng tôi thường gắn bó với nano vì nó đơn giản, sạch sẽ và hoàn thành công việc.
Để hoàn thành nhiệm vụ ban đầu của chúng tôi, chỉ cần nhập:
* * * * * echo "phút hiện tại là: $ (ngày)" >> /tmp/minute.log
"Control-x" sẽ nhắc nhở để lưu, sau đó nhập sẽ xác nhận. Bạn sẽ thấy rằng cron đã được cập nhật thành công. Công việc sẽ in ngày / giờ hiện tại mỗi phút thành một tệp có tên là minute.log trong thư mục / tmp.
Đây là đầu ra tự động trong 6 phút:
Hãy lấy lạ mắt, cách in ngày 2 phút một lần ...
* / 2 * * * * echo “phút hiện tại là: $ (ngày)” >> /tmp/minute.log
Sử dụng * / n trong đó n là một số nguyên dương sẽ nói mỗi n phút, hoặc mỗi n giờ.
Cách in ngày 5:30 sáng vào các ngày thứ Hai và thứ Sáu:
30 5 * * 1, 5 echo "phút hiện tại là: $ (ngày)" >> /tmp/minute.log
Cảm thấy tự do để chơi xung quanh với lịch trình đơn giản "echo" để logfiles. Sau đó chuyển sang kịch bản và ứng dụng.
Chơi với Corntab
Bây giờ hãy thử CornTab, trình soạn thảo cron dựa trên web sẽ xử lý cú pháp trong khi chúng ta chỉ cần nhấp vào các tùy chọn.
Dưới đây là một bước để tạo một crontab sẽ in ngày / giờ hiện tại cứ hai phút một lần, chỉ trong tháng 1, tháng 2, tháng 3 và tháng 4, vào thứ 5 và thứ 6.
Đầu tiên, nhấp vào “cứ mỗi n phút” và di chuyển thanh trượt đến 2 phút.
Tiếp theo, nhấp để mở rộng tháng, nhấp để chọn “mỗi tháng đã chọn” và chọn Jan, Feb, Mar, Apr.
Tiếp theo, nhấp để mở rộng Ngày trong tuần, chọn “mỗi ngày đã chọn trong tuần” và chọn Thu và Thứ Sáu.
Cuối cùng, nhấn để mở rộng Command và gõ vào mã / script. Sau đó, bạn có thể sao chép mã cron đầy đủ từ Corntab và dán nó vào crontab của bạn bằng cách sử dụng các bước ở đầu bài viết này.
Tham khảo và biết thêm thông tin về Cron:
http://www.pantz.org/software/cron/croninfo.html
http://www.computerhope.com/unix/ucrontab.htm
https://help.ubuntu.com/community/CronHowto