Computer >> Máy Tính >  >> Điện thoại thông minh >> Linux

Tăng năng suất Linux / Unix của bạn:Cách sử dụng crontab

Hướng dẫn chi tiết này sẽ giải thích cách sử dụng lệnh crontab để lập lịch tác vụ trong Linux / Unix.

Ngoài trò chơi điện tử, một trong những lợi thế lớn của việc sử dụng máy tính là chúng dường như không ngại thực hiện các công việc nhàm chán và lặp đi lặp lại mà chúng ta không muốn làm. Đối với các tác vụ đơn điệu như chạy sao lưu hàng ngày, tốt hơn hết chúng ta nên lên lịch để chúng chạy vào một thời điểm nhất định hàng ngày và làm những việc thú vị hơn với thời gian của chúng ta. Linux và UNIX thường đi kèm với tiện ích “crontab” theo mặc định. Lệnh rất hữu ích này cho phép bạn lập lịch các tác vụ để chạy tại một thời điểm xác định và lặp lại như đã định cấu hình. Một nhiệm vụ được lập lịch sử dụng “crontab” được gọi là “cron job”.

Lệnh crontab cho phép bạn hướng dẫn máy chủ của mình thực thi một tập lệnh vào một phút cụ thể của ngày được chỉ định trong tháng cụ thể. Để xem những công việc cron nào được thiết lập để chạy trên máy của bạn, hãy chạy lệnh sau:

# crontab -l

Nếu máy của bạn được cấu hình một số công việc cron, nó sẽ hiển thị như sau:

0 6 * * * /opt/scripts/backup_script.sh

Cấu hình crontab ở trên cho thấy một công việc cron thực thi tập lệnh shell “backup_script” hàng ngày lúc 6 giờ sáng. Dấu * có nghĩa là chạy ở mọi trường hợp của giá trị trong trường. Vì vậy, một dấu hoa thị trong các trường ngày, tháng và ngày trong tuần trong ví dụ trên có nghĩa là tập lệnh sẽ chạy mọi ngày trong tháng, mọi tháng trong năm và mọi ngày trong tuần. Trường đầu tiên và trường thứ hai cho crontab thực thi tập lệnh ở 0 phút và 6 giờ, tức là 6 giờ sáng. Vì vậy, cấu hình cron job này sẽ có nội dung như sau, “Chạy script /opt/scripts/backup_script.sh lúc 0 phút, 6 giờ sáng, hàng ngày, hàng tháng và mọi ngày trong tuần.” Dưới đây là "giải phẫu" của cấu hình crontab được giải thích.

0 6 * * * /opt/scripts/backup_script.sh
| | | | |
| | | | | ________________ ngày trong tuần (Chủ nhật =0)
| | | | __________________ tháng trong năm
| | | ____________________ ngày trong tháng
| | ______________________ giờ trong ngày
| ________________________ phút trong giờ

Để lên lịch các công việc cron mới hoặc chỉnh sửa các công việc cũ, hãy thực hiện lệnh sau:

# crontab -e

Thao tác này sẽ hiển thị một trình soạn thảo mà bạn có thể thêm, chỉnh sửa hoặc xóa “cron job”. Để lên lịch thực hiện công việc lúc 3:45 chiều Thứ Hai hàng tuần, hãy thêm mục nhập như sau:

45 15 * * 1 /opt/scripts/script.sh

Bạn cũng có thể sử dụng dấu phẩy để thêm nhiều mục nhập vào một trường. Điều này rất hữu ích nếu bạn muốn chạy một kịch bản ba lần một ngày, với khoảng thời gian tám giờ. Tuy nhiên, hãy đảm bảo rằng bạn không để trống giữa các mục nhập trong một trường. Mục nhập "cron job" của bạn sẽ giống như sau:

0 1,9,17 * 2,11 * /opt/scripts/db_backup_script.sh

Trong ví dụ trên, tập lệnh “db_backup_script.sh” chạy lúc 1 giờ sáng, 9 giờ sáng và 5 giờ chiều hàng ngày trong tháng 2 và tháng 11. Có rất nhiều điều thú vị mà bạn có thể làm với cron job. Các hoạt động tương tự cho ngày, tháng và ngày trong tuần. Sau khi bạn hiểu điều này, hãy thử những điều sau đây. Crontab không chỉ hiểu các con số, nó còn có thể hoạt động dựa trên một số từ tiếng Anh cơ bản:

giải thích chuỗi
—— ———–
@reboot Chạy một lần, vào lần tiếp theo hệ thống khởi động lại
@yearly Chạy mỗi năm một lần, vào đầu năm
@annently Tương tự như @yearly, chạy mỗi năm một lần
@monthly Chạy mỗi tháng một lần, vào đầu tháng
@weekly Chạy mỗi tuần một lần, vào đầu tuần
@daily Chạy mỗi ngày một lần, vào lúc nửa đêm
@midnight Tương tự như @daily, chạy lúc nửa đêm
@hourly Chạy mỗi giờ một lần, vào đầu giờ

Vì vậy, ví dụ:nếu bạn muốn chạy một tập lệnh vào lúc nửa đêm mỗi đêm, thì đây là cấu hình crontab của bạn sẽ trông như thế nào:

@midnight /opt/scripts/script.sh

Việc sử dụng “@midnight” thay vì “0 0 * * *” sẽ hoạt động giống nhau và thực thi tập lệnh được yêu cầu vào lúc nửa đêm hàng đêm đồng thời dễ đọc hơn rất nhiều so với đối tác số của nó. Bạn cũng có thể sử dụng dấu gạch ngang để khai báo một dải ô. Trong lệnh bên dưới “script.sh” sẽ được thực thi vào đầu mỗi giờ từ 1 giờ sáng đến 6 giờ sáng:

0 1-6 * * * /opt/scripts/script.sh

Có rất nhiều điều thú vị khác mà bạn có thể làm với cron. Mọi sysasmin đều tuân theo điều đó, nó khá dễ sử dụng khi bạn nắm bắt được nó và rất mạnh mẽ. Hãy sử dụng công cụ này một cách khôn ngoan, vì việc lên lịch công việc sai đôi khi có thể gây hại rất nhiều. Bạn nên đọc “man page” của crontab. Bạn cũng nên tìm hiểu về lệnh at, vì nó cũng được sử dụng để lập lịch biểu lệnh.