11 ví dụ lệnh cron trên Centos / Ubuntu / Debian / Fedora

Lệnh cron được kích hoạt mỗi phút và kiểm tra các nhiệm vụ đã được lập lịch trong Crontab (CRON TABle) - một bảng lập lịch nơi chúng ta có thể lập lịch cho các nhiệm vụ lặp lại. Mỗi người dùng có crontab riêng để tạo, chỉnh sửa và xóa các nhiệm vụ. Mặc định, cron được kích hoạt cho người dùng, tuy nhiên, chúng ta có thể hạn chế người dùng bằng cách thêm mục nhập vào tệp /etc/cron.deny.

Crontab trong Linux

Tệp Crontab bao gồm các lệnh trên mỗi dòng và thực sự có sáu trường, được phân tách bằng dấu cách hoặc tab. Năm trường đầu tiên đại diện cho thời gian chạy các nhiệm vụ và trường cuối cùng dùng cho lệnh.

  • Phút (giá trị từ 0-59)
  • Giờ (giá trị từ 0-23)
  • Ngày trong tháng (giá trị từ 1-31)
  • Tháng trong năm (giá trị từ 1-12 hoặc Jan-Dec, bạn có thể sử dụng ba chữ cái đầu tiên của tên các tháng, ví dụ Jan hoặc Jun.)
  • Ngày trong tuần (giá trị từ 0-6 hoặc Sun-Sat, bạn cũng có thể sử dụng ba chữ cái đầu tiên của tên các ngày, ví dụ Sun hoặc Wed.)
  • Lệnh - /path/to/command hoặc script mà bạn muốn lập lịch.

1.Liệt kê các mục trong Crontab lệnh cron

Liệt kê hoặc quản lý các nhiệm vụ bằng lệnh crontab với tùy chọn -l cho người dùng hiện tại.

# crontab -l
00 10 * * * /bin/ls >/ls.txt

2.Chỉnh sửa các mục trong Crontab

Để chỉnh sửa các mục trong crontab, sử dụng tùy chọn -e như dưới đây. Ví dụ dưới đây sẽ mở các công việc được lập lịch trong trình soạn thảo VI. Thực hiện các thay đổi cần thiết và thoát bằng cách nhấn các phím :wq để lưu cài đặt.

# crontab -e

3.Liệt kê các công việc đã lập lịch trong Crontab của người dùng

Để liệt kê các công việc đã lập lịch của một người dùng cụ thể có tên là "tecmint", sử dụng tùy chọn -u (Người dùng) và -l (Liệt kê).

# crontab -u tecmint -l
no crontab for tecmint

Lưu ý: Chỉ người dùng root có đầy đủ quyền để xem các mục crontab của người dùng khác. Người dùng thông thường không thể xem được mục của người khác.

4.Xóa một mục trong crontab lệnh cron

Lưu ý: Sử dụng crontab với tham số -r sẽ xóa hoàn toàn các công việc được lập lịch mà không có sự xác nhận từ Crontab. Sử dụng tùy chọn -i trước khi xóa crontab của người dùng.

# crontab -r

5.Lệnh cron yêu cầu xác nhận trước khi xóa Crontab

Crontab với tùy chọn -i sẽ yêu cầu xác nhận từ người dùng trước khi xóa crontab của người dùng.

# crontab -i -r
crontab: really delete root's crontab?

6.Cho phép các ký tự đặc biệt (, -, /, ?, #)

  • Asterisk () - Phù hợp với tất cả các giá trị trong trường hoặc bất kỳ giá trị nào có thể có.
  • Dấu gạch ngang (-) - Để xác định một phạm vi.
  • Dấu gạch chéo (/) - Trường đầu tiên /10 có nghĩa là mỗi mười phút hoặc tăng dần trong phạm vi.
  • Dấu phẩy (,) - Để phân tách các mục.

7.Lịch trình Crontab toàn hệ thống bằng lệnh cron

Một quản trị viên hệ thống có thể sử dụng thư mục crontab được xác định trước như dưới đây:

  • /etc/cron.d
  • /etc/cron.daily
  • /etc/cron.hourly
  • /etc/cron.monthly
  • /etc/cron.weekly

8.Lập lịch công việc cho một thời gian cụ thể

Công việc dưới đây xóa các tệp và thư mục trống từ /tmp lúc 12:30 sáng hàng ngày. Bạn cần chỉ định tên người dùng để thực hiện lệnh crontab. Trong ví dụ dưới đây, người dùng root đang thực hiện một công việc crontab.

# crontab -e
30 0 * * *   root   find /tmp -type f -empty -delete

9.Chuỗi đặc biệt cho lịch trình thông thường

  • @reboot: Lệnh sẽ chạy khi hệ thống khởi động lại.
  • @daily: Một lần mỗi ngày hoặc có thể sử dụng @midnight.
  • @weekly: Một lần mỗi tuần.
  • @yearly: Một lần mỗi năm. Chúng ta cũng có thể sử dụng từ khóa @annually.

Bạn cần thay thế năm trường của lệnh cron bằng các từ khóa tương ứng nếu bạn muốn sử dụng chúng.

10.Nhiều lệnh với dấu hai dấu và (&&)

Trong ví dụ dưới đây, command1 và command2 được thực thi hàng ngày.

# crontab -e
@daily <command1> && <command2>

11.Tắt thông báo qua email

Mặc định, cron gửi email đến tài khoản người dùng thực thi cronjob. Nếu bạn muốn tắt thông báo này, bạn có thể thêm công việc cron tương tự ví dụ dưới đây. Sử dụng tùy chọn >/dev/null 2>&1 ở cuối tệp sẽ chuyển hướng toàn bộ đầu ra của kết quả cron vào /dev/null.

# crontab -e
* * * * * >/dev/null 2>&1

Kết luận: Tự động hóa các nhiệm vụ có thể giúp chúng ta thực hiện công việc một cách tốt hơn, không có lỗi và hiệu quả hơn. Bạn có thể tham khảo trang hướng dẫn của crontab để biết thêm thông tin bằng cách gõ lệnh "man crontab" trong cửa sổ terminal của bạn

Mọi người cũng tìm kiếm: fedora crontab, crontab fedora, cron centos, crontab debian 12, crontab centos, fedora 11