Crontab Linux Là Gì? Hướng Dẫn Cài Đặt, Sử Dụng Chuẩn Chỉ Từ A - Z

Crontab Linux là dịch vụ hỗ trợ thực hiện những tác vụ đã lên lịch. Nhờ đó, nó giúp nâng cao hiệu suất làm việc. Để tìm hiểu thêm về dịch vụ này và cách sử dụng nó, mời bạn cùng tham khảo bài tổng hợp sau đây nhé.

Crontab Linux là dịch vụ hỗ trợ thực hiện những tác vụ đã lên lịch. Nhờ đó, nó giúp nâng cao hiệu suất làm việc. Để tìm hiểu thêm về dịch vụ này và cách sử dụng nó, mời bạn cùng tham khảo bài tổng hợp sau đây nhé. 

Crontab Linux là gì?

Cron là phương pháp dùng để tạo, thực hiện tác vụ theo lịnh trình đã được lập theo định kỳ dưới dạng chế độ nền. 

Trong đó:

  • Cron job: Tập hợp những tác vụ (task) cần thực hiện.
  • Crontab: Đóng vai trò lưu trữ các tác vụ cần thực hiện (Cron job). Trên nền tảng Linux có sẵn chương trình Crontab được dùng để chỉnh sửa lịch trình.

Hiện nay, dịch vụ Crontab được ứng dụng rất nhiều đến nỗi hầu hết các ứng dụng đều dùng chúng.

Bên cạnh đó, người dùng còn sử dụng Crontab Linux cho mục đích tự động sao lưu, cập nhật hoặc đồng bộ dữ liệu website. 

Ví dụ: Tính năng lên lịch xuất bản bài viết của website vào một khung giờ nhất định chính là hoạt động của dịch vụ Crontab.

crontab linux

Cách sử dụng Crontab Linux 

Mỗi Crontab là tệp tin văn bản chứa danh sách những lệnh có nghĩa. Các lệnh này sẽ được khởi chạy vào thời điểm đã được chỉ định. Bên cạnh đó, chúng còn có thể được điều chỉnh, thay đổi bằng lệnh Crontab.

Ngoài ra, các lệnh ở file Crontab còn phải chịu sự kiểm tra của trình Cron deamon. Trình này cũng đóng vai trò thực thi lệnh trong hệ thống.

Sau đây là các lệnh thường được sử dụng:

- crontab -e: Lệnh dùng để tạo mới hay chỉnh sửa tệp tin Crontab. 

- crontab -l: Lệnh dùng để hiển thị tệp tin Crontab.

- crontab -r: Lệnh dùng để xóa tệp tin Crontab.

Người dùng (gồm root và các user) có một tệp Crontab. Lúc đó, Cron daemon thực hiện việc kiểm tra tệp Crontab dù người dùng có hoặc không có đăng nhập vào hệ thống.

Hiện nay, hầu hết các VPS của nhà cung cấp dịch vụ hosting đều cài đặt sẵn tệp Crontab ngay khi tạo mới một VPS. Còn đối với máy chủ riêng (Dedicated server), nếu bạn cài đặt OS ngay từ ban đầu thì phải cài thêm Crontab.

Cài đặt Crontab Linux

Cách thức cài đặt Crontab Linux khá đơn giản, bạn chỉ việc nhập câu lệnh là hoàn tất.

  • Đối với Ubuntu/Debian: Sử dụng câu lệnh sau.

sudo apt-get install cron

  • Đối với CentOS/Red Hat Linux: Sử dụng câu lệnh sau.

yum install cronie

Khi đã hoàn tất cài đặt, bạn sử dụng câu lệnh bên dưới để kiểm tra tiến trình cài đặt có thành công hay không. 

service crond status

Nếu output hiển thị như sau có nghĩa là cài đặt đã thành công. 

crond (pid 4370) is running...

Trong trường hợp, Crontab vẫn chưa chạy, bạn khởi động Crontab theo cách thủ công, sau đó thiết lập chế độ tự động chạy cùng với reboot bằng cách dùng lệnh dưới đây. 

service crond start

chkconfig crond on

crontab linux

Cấu trúc của Crontab Linux

Cấu trúc lệnh Crontab gồm 3 phần:

  • Trường thời gian: Chứa 5 chỉ số thời gian thực hiện việc xác định lịch trình.
  • Trường user-name: Thực hiện nhiệm vụ xác định tài khoản được cấp quyền chạy Crontab. Trong trường hợp không được chỉ định thì hệ thống sẽ dùng user đã register Crontab mặc định. 
  • Tác vụ cần thực thi: Tác vụ có thể chứa 1 lệnh đơn, hoặc nhiều lệnh. Khi chứa nhiều lệnh thì mỗi lệnh cách nhau bằng dấu “;” 

Minh họa lệnh Crontab như sau:

*     *     *     *     *     user-name command to be executed

-     -     -     -     -

|     |     |     |     |

|     |     |     |     +----- day of week (0 - 6) (Sunday=0)

|     |     |     +------- month (1 - 12)

|     |     +--------- day of month (1 - 31)

|     +----------- hour (0 - 23)

+------------- min (0 - 59)

Ví dụ: Khi bạn để 5 chỉ số thời gian là * như sau thì hệ thống sẽ hiểu tác vụ chạy từng phút. 

Như vậy, khi để dấu * ở trường thời gian nào thì trường đó sẽ chạy theo mỗi đơn vị (như mỗi phút (every minute), mỗi ngày (every day) …).

Hoặc bạn viết rút gọn như bên dưới:

Ngoài ra, bạn cũng có thể dùng tool để gen thực hiện tự động. Sau đó, bạn copy chúng vào Crontab Linux để tiến trình tự động được kích hoạt. 

crontab linux

Các lệnh Crontab Linux phổ biến khác

Crontab Linux cho phép người dùng sử dụng từ khóa đặc biệt thay cho thời gian, điển hình như các lệnh bên dưới đây. 

@reboot     Run once, at startup

@yearly     Run once  a year     "0 0 1 1 *"

@annually   (same as  @yearly)

@monthly    Run once  a month    "0 0 1 * *"

@weekly     Run once  a week     "0 0 * * 0"

@daily      Run once  a day      "0 0 * * *"

@midnight   (same as  @daily)

@hourly     Run once  an hour    "0 * * * *"

Cách sử dụng Crontab Linux: Tắt tính năng gửi email cho quản trị viên khi khởi chạy Crontab

Theo mặc định, Crontab sẽ gửi email đến quản trị viên khi nó thực thi các Cron job. Do đó, để tránh bị spam quá nhiều email, bạn có thể tắt tính năng này bằng cách thêm đoạn lệnh dưới đây vào cuối dòng.

>/dev/null 2>&1

Ví dụ: 

Hướng dẫn cách dùng Crontab Linux: Tạo log file

Tạo log file giúp bạn có thể kiểm tra hoạt động của Crontab có đúng hay không. Để tạo log file, bạn dùng câu lệnh dưới đây.