Crontab trong Linux: VÍ DỤ Lập lịch công việc

Mục lục:

Anonim

Crontab là gì?

Cron được đặt tên theo từ tiếng Hy Lạp "Chronos" được sử dụng cho thời gian. Đây là một quy trình hệ thống sẽ tự động thực hiện các tác vụ theo lịch trình cụ thể. Nó là một tập hợp các lệnh được sử dụng để chạy các tác vụ lập lịch thông thường. Crontab là viết tắt của "bảng cron". Nó cho phép sử dụng bộ lập lịch công việc, được gọi là cron để thực thi các tác vụ.

Crontab cũng là tên của chương trình, dùng để chỉnh sửa lịch trình đó. Nó được điều khiển bởi một tệp crontab, một tệp cấu hình chỉ ra các lệnh shell để chạy định kỳ cho lịch trình cụ thể.

Trong hướng dẫn về Hệ điều hành này, bạn sẽ học:

  • Crontab là gì?
  • Tại sao sử dụng CRONJOB?
  • Làm thế nào để sử dụng cron trong Linux?
  • Định dạng Crontab của Linux
  • Cách thêm / sửa đổi Crontab
  • Cách liệt kê Crontab
  • Các ví dụ quan trọng về Crontab

Tại sao sử dụng Cronjobs?

Đây là những lý do để sử dụng Cronjobs trong Linux:

  • Giúp hệ điều hành sao lưu theo lịch trình các tệp nhật ký hoặc cơ sở dữ liệu.
  • Xóa các tệp nhật ký cũ
  • Lưu trữ và xóa các bảng cơ sở dữ liệu
  • Gửi bất kỳ email thông báo nào như Bản tin, Email hết hạn mật khẩu
  • Dọn dẹp thường xuyên dữ liệu đã lưu trong bộ nhớ cache
  • Crontab là một lựa chọn lý tưởng để tự động hóa các công việc Unix.
  • Nó được sử dụng để tự động bảo trì hệ thống

Làm thế nào để sử dụng cron trong Linux?

Gói hệ thống Linux có một bộ lập lịch tác vụ hữu ích có tên là crontab. Crontab phổ biến vì nó có thể được lên lịch để chạy một quy trình tự động dưới dạng root. Do đó, việc có một quy trình tự động chạy dưới dạng root giúp thay đổi hệ thống dễ dàng hơn. Bạn chỉ cần thay đổi tác vụ và sau đó đợi cho đến khi tác vụ được bắt đầu lại.

Định dạng Crontab của Linux

Crontab của Linux có sáu trường. Năm trường đầu tiên xác định thời gian và ngày thực hiện, và trường thứ 6 được sử dụng để thực hiện lệnh.

Cú pháp Crontab:

[Minute] [hour][Day_of_the_Month][Month_of_the_Year][Day_of_the_Week][command]

  • Chiêm tinh (*): Dùng để so khớp
  • Xác định phạm vi: Cho phép bạn xác định phạm vi với sự trợ giúp của dấu gạch ngang như 1-10 hoặc 30-40 hoặc jan-mar, mon-wed.
  • Xác định nhiều phạm vi: Cho phép bạn xác định các phạm vi khác nhau bằng các lệnh được phân tách như apr-jun, oct-dec.

Cách thêm / sửa đổi Crontab

Người dùng có thể chỉnh sửa công việc crontab của họ với sự trợ giúp của lệnh crontab sau:

$ crontab -u -e

Lệnh trên sẽ mở cấu hình crontab cá nhân của hệ thống máy tính của bạn, có thể được chỉnh sửa bằng cách sử dụng trình soạn thảo văn bản mặc định của bạn.

Không cần phải khởi động lại crontab của bạn vì nó sẽ tự động nhận các thay đổi của bạn khi bạn sử dụng lệnh sau.

$ crontab -l

Để xóa các tác vụ crontab của bạn, hãy sử dụng lệnh sau.

$ crontab -r

Để thêm hoặc cập nhật công việc trong crontab, hãy sử dụng lệnh dưới đây.

crontab -e

Lệnh chỉnh sửa crontab của người dùng khác

crontab -u username -e

Cách liệt kê Crontab

Lệnh để xem các mục nhập crontab của người dùng hiện tại

crontab -l

Lệnh để xem các mục nhập crontab của một người dùng cụ thể:

crontab -u username -l

Các ví dụ quan trọng về Crontab

Dưới đây là một số ví dụ quan trọng về Crontab

Sự miêu tả Chỉ huy
Lệnh Cron để thực hiện các công việc lập lịch trình khác nhau. Lệnh dưới đây thực hiện vào lúc 7 giờ sáng và 5 giờ chiều hàng ngày.
0 7,17 * * * /scripts/script.sh
Lệnh thực hiện cron sau mỗi 5 phút.
*/5* * * * * /scripts/script.sh
Lệnh Cron lập lịch giúp bạn thực hiện nhiệm vụ vào 5 giờ sáng Thứ Hai hàng tuần. Lệnh này rất hữu ích để thực hiện các công việc hàng tuần như dọn dẹp hệ thống.
0 5 * * mon /scripts/script.sh
Lệnh chạy tập lệnh của bạn trong khoảng thời gian 3 phút.
*/3 * * * * /scripts/monitor.sh
Lệnh lên lịch cho một cron sẽ thực thi trong một tháng cụ thể. Lệnh này để chạy các tác vụ chạy trong tháng 2, tháng 6 và tháng 9. Đôi khi chúng ta cần lập lịch để thực hiện một nhiệm vụ hàng tháng đã chọn.
* * * feb,jun,sep * /script/script.sh
Lệnh thực thi vào những ngày đã chọn. Ví dụ này sẽ chạy vào thứ Hai và thứ Tư lúc 5 giờ chiều.
0 17 * * mon,wed /script/script.sh
Lệnh này cho phép cron thực thi vào thứ Bảy đầu tiên của mỗi tháng.
0 2 * * sat [ $(date +%d) -le 06 ] && /script/script.sh
Lệnh chạy một tập lệnh trong khoảng thời gian 6 giờ để nó có thể được cấu hình như bên dưới.
0 */6 * * * /scripts/script.sh
Lệnh này lập lịch một nhiệm vụ để thực hiện hai lần vào thứ Hai và thứ Ba. Sử dụng các cài đặt sau để làm điều đó.
0 4,17 * * mon,tue /scripts/script.sh
Lệnh lập lịch cho một cron để thực thi sau mỗi 15 Giây.
* * * * * /scripts/script.sh* * * * * sleep 15; /scripts/script.sh
Lệnh sắp xếp nhiệm vụ hàng năm. Dấu thời gian @yearly là = thành "0 0 5 1 *". Điều này thực hiện nhiệm vụ vào phút thứ năm hàng năm. Bạn có thể sử dụng nó để gửi lời chúc mừng năm mới.
@yearly /scripts/script.sh
Lệnh thực hiện nhiệm vụ hàng tháng. Dấu thời gian @monthly tương tự như "0 0 1 * *". Biểu thức lệnh này cho phép thực hiện một nhiệm vụ trong phút đầu tiên của tháng.
@monthly /scripts/script.sh
Lệnh thực thi nhiều tác vụ bằng cách sử dụng một cron.
* * * * * /scripts/script.sh; /scripts/scrit2.sh
Lệnh sắp xếp các nhiệm vụ để thực hiện hàng tuần. Dấu thời gian @weekly tương tự như "0 0 4 * sun". Điều này được sử dụng để thực hiện các tác vụ hàng tuần như dọn dẹp hệ thống, v.v.
@weekly /bin/script.sh
Nhiệm vụ sẽ được lên lịch thực hiện hàng ngày. Dấu thời gian @daily tương tự như "0 2 * * *". Nó thực hiện nhiệm vụ vào phút thứ hai hàng ngày.
@daily /scripts/script.sh
Cho phép các nhiệm vụ thực hiện hàng giờ. Dấu thời gian @hourly tương tự như "0 * * * *". Lệnh này thực hiện một tác vụ trong phút đầu tiên của mỗi giờ.
@hourly /scripts/script.sh
Cho phép các tác vụ thực thi khi khởi động lại hệ thống. Biểu thức @reboot hữu ích cho những tác vụ mà hệ thống muốn chạy khi khởi động hệ thống của bạn. Điều này rất hữu ích để bắt đầu nhiệm vụ nền tự động.
@reboot /scripts/script.sh

Tóm lược:

  • Cron được đặt tên theo từ tiếng Hy Lạp "Chronos" được sử dụng cho thời gian.
  • Cronjobs giúp hệ điều hành sao lưu các tệp nhật ký hoặc cơ sở dữ liệu theo lịch trình.
  • Gói hệ thống Linux có một bộ lập lịch tác vụ hữu ích có tên crontab có thể được lập lịch để chạy một quy trình tự động dưới dạng root.
  • Crontab của Linux có sáu trường. Năm trường đầu tiên xác định thời gian và ngày thực hiện, và trường thứ 6 được sử dụng để thực hiện lệnh.