Tuyển dụng
Viettel IDC

Crontab là gì? Hướng dẫn cách cài đặt và sử dụng Crontab Linux từ A-Z

09/03/2026

Crontab là công cụ cực kỳ quan trọng giúp quản trị viên và lập trình viên lên lịch chạy script, backup dữ liệu hoặc thực thi lệnh theo chu kỳ mà không cần thao tác thủ công. Trong bài viết này, Viettel IDC sẽ cùng bạn tìm hiểu Crontab là gì, cú pháp crontab, cách cài đặt và sử dụng Crontab Linux chi tiết kèm ví dụ thực tế cho người mới bắt đầu.

Crontab là gì?

Crontab (viết tắt của cron table) là “bảng lịch” trên Linux/Unix dùng để lên lịch chạy tự động các lệnh hoặc script theo chu kỳ bạn đặt sẵn. Bạn chỉ cần khai báo thời gian chạy + câu lệnh cần thực thi, sau đó hệ thống sẽ tự làm đúng giờ, đúng nhịp mà không cần bạn can thiệp thủ công.

Crontab đặc biệt hữu ích cho các tác vụ lặp lại như backup dữ liệu, dọn log, đồng bộ file, chạy báo cáo, gửi email hệ thống, chạy batch xử lý dữ liệu… Khi làm server/VPS, crontab gần như là kỹ năng “must-have”.

Crontab là gì?

Cron job là gì?

Cron job là một tác vụ cụ thể được khai báo trong crontab. Mỗi cron job gồm 2 phần:

- Phần lịch (minute, hour, day of month, month, day of week).

- Phần lệnh/script sẽ chạy.

Cú pháp crontab là phần cốt lõi để bạn “lên lịch đúng”. Một dòng crontab tiêu chuẩn gồm 5 trường thời gian và một trường lệnh. Bạn có thể xem 5 trường này như 5 câu hỏi: phút nào, giờ nào, ngày nào trong tháng, tháng nào, và thứ mấy trong tuần.

Cấu trúc dòng lệnh crontab

1. Cú pháp tổng quát của lệnh crontab

Cú pháp tổng quát của crontab:

m h dom mon dow command

Trong đó m là phút, h là giờ, dom là ngày trong tháng, mon là tháng, dow là thứ trong tuần. Các trường cách nhau bằng khoảng trắng hoặc tab. Sau đó là lệnh cần thực thi. Khi cron job được chạy, cron sẽ gọi lệnh đúng như bạn viết, vì vậy hãy viết lệnh rõ ràng và ưu tiên đường dẫn tuyệt đối.

2. Ý nghĩa 5 trường thời gian

Trường phút chạy từ 0 đến 59. Trường giờ chạy từ 0 đến 23. Trường ngày trong tháng thường là 1 đến 31. Trường tháng là 1 đến 12 hoặc có thể dùng tên tháng dạng viết tắt trên một số hệ thống. Trường thứ trong tuần thường là 0 đến 7, trong đó 0 hoặc 7 thường đại diện cho Chủ nhật tùy hệ thống. Nhiều distro cho phép viết thứ dạng chữ như mon, tue, wed, thu, fri, sat, sun.

Bạn có thể đặt lịch rất linh hoạt, từ mỗi phút, mỗi giờ, đến những lịch phức tạp như “mỗi 10 phút trong giờ làm việc từ thứ Hai đến thứ Sáu”.

3. Các ký hiệu phổ biến

Dấu * là ký hiệu quan trọng nhất, đại diện cho “mọi giá trị” của trường đó. Nếu bạn đặt * ở trường ngày, nghĩa là ngày nào cũng chạy. Dấu , cho phép bạn liệt kê nhiều giá trị. Dấu - cho phép bạn đặt khoảng. Dấu / cho phép bạn đặt bước nhảy, ví dụ */5 ở trường phút nghĩa là mỗi 5 phút chạy một lần.

Bên cạnh đó, crontab còn hỗ trợ các “shortcut” bắt đầu bằng @ như @daily, @weekly, @monthly, @yearly, @hourly và @reboot. Những shortcut này giúp bạn viết nhanh các lịch phổ biến, giảm sai sót khi nhập 5 trường thời gian. Tuy nhiên, khi cần lịch tùy biến cao, bạn vẫn nên dùng đầy đủ 5 trường.

Các ký hiệu phổ biến

Cách thức hoạt động của Crontab là gì?

Crontab hoạt động dựa trên các file cấu hình lịch trình (cron schedule) để quản lý và tự động chạy các tác vụ trên hệ điều hành Linux. Mỗi người dùng trên hệ thống đều có thể sở hữu một file Crontab riêng nhằm thiết lập các công việc cần thực thi theo thời gian đã định sẵn. Những file này thường được lưu trữ trong thư mục /var/spool/cron. Tuy nhiên, người dùng không thể chỉnh sửa trực tiếp các file này bằng trình soạn thảo thông thường, mà cần sử dụng lệnh chuyên dụng của hệ thống.

Để tạo hoặc chỉnh sửa các tác vụ trong Crontab, bạn phải sử dụng lệnh crontab -e. Lệnh này sẽ mở file Crontab trong trình editor mặc định của hệ thống, cho phép bạn thêm hoặc chỉnh sửa các cron job theo lịch trình mong muốn. Sau khi lưu lại, cron daemon sẽ tự động cập nhật và áp dụng lịch mới.

Trong quá trình làm việc với Crontab, có một số lệnh cơ bản thường được sử dụng:

- crontab -e: Tạo mới hoặc chỉnh sửa file Crontab của người dùng hiện tại.

- crontab -l: Hiển thị danh sách tất cả các cron job đã được thiết lập.

- crontab -r: Xóa toàn bộ các tác vụ trong file Crontab.

Ví dụ crontab phổ biến trong thực tế

Trong quá trình quản trị hệ thống Linux hoặc vận hành website trên VPS, crontab thường được sử dụng để tự động hóa nhiều tác vụ lặp lại theo thời gian. Việc thiết lập cron job giúp hệ thống tự động chạy các script hoặc lệnh định kỳ mà không cần người quản trị phải thao tác thủ công. Nhờ đó, các công việc như sao lưu dữ liệu, dọn dẹp log, gửi báo cáo hoặc đồng bộ dữ liệu có thể diễn ra ổn định và đúng lịch trình đã cấu hình.

 

Cú pháp crontab

Ý nghĩa

* * * * * /home/user/script.sh

Chạy script mỗi phút

0 * * * * /home/user/script.sh

Chạy vào phút 0 của mỗi giờ

0 2 * * * /home/user/backup.sh

Chạy lúc 2 giờ sáng mỗi ngày

0 3 * * 0 /home/user/backup.sh

Chạy lúc 3 giờ sáng mỗi Chủ nhật

*/10 * * * * /home/user/check.sh

Chạy script mỗi 10 phút

0 9 * * 1-5 /home/user/report.sh

Chạy lúc 9 giờ sáng từ thứ Hai đến thứ Sáu

0 0 1 * * /home/user/monthly.sh

Chạy vào 0 giờ ngày đầu tiên của mỗi tháng

@reboot /home/user/start.sh

Chạy script khi hệ thống khởi động lại

Hướng dẫn cách cài đặt Crontab Linux

Trên hầu hết các hệ điều hành Linux, công cụ Crontab thường đã được cài đặt sẵn để người dùng có thể thiết lập các tác vụ tự động. Tuy nhiên, trong một số trường hợp khi sử dụng lệnh crontab -l mà hệ thống hiển thị thông báo command not found, điều đó cho thấy cron chưa được cài đặt trên hệ thống. Lúc này bạn cần tiến hành cài đặt cron thủ công thông qua trình quản lý gói của hệ điều hành.

Trước tiên, bạn nên kiểm tra xem Crontab đã tồn tại hay chưa bằng cách mở Terminal và nhập lệnh:

crontab -l

Nếu hệ thống không nhận diện lệnh này, bạn có thể cài đặt cron theo từng hệ điều hành Linux phổ biến như sau:

Cài đặt Crontab trên Ubuntu / Debian

Trên các hệ thống Ubuntu hoặc Debian, bạn cần cập nhật danh sách package trước khi cài đặt cron.

sudo apt update

sudo apt install cron

Sau khi cài đặt xong, bạn cần kích hoạt dịch vụ cron để nó chạy cùng hệ thống:

sudo systemctl enable cron

sudo systemctl start cron

Cài đặt Crontab trên CentOS / RHEL

Với các hệ điều hành thuộc dòng CentOS hoặc RedHat, bạn có thể sử dụng lệnh sau:

sudo yum install cronie

Sau khi cài đặt, kích hoạt dịch vụ cron:

sudo systemctl enable crond

sudo systemctl start crond

Sau khi hoàn tất các bước trên, bạn đã có thể sử dụng Crontab để tạo và quản lý các cron job trên hệ thống Linux.

Các lệnh crontab thường dùng

Trong quá trình làm việc với Crontab, có một số lệnh cơ bản giúp bạn quản lý các cron job một cách dễ dàng. Những lệnh này cho phép tạo mới, chỉnh sửa, xem hoặc xóa các tác vụ đã được thiết lập trước đó.

Lệnh

Chức năng

crontab -e

Tạo mới hoặc chỉnh sửa file Crontab

crontab -l

Hiển thị danh sách cron job đã thiết lập

crontab -r

Xóa toàn bộ cron job trong file Crontab

crontab -u username -e

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

crontab -u username -l

Xem cron job của người dùng khác

Những lệnh này được sử dụng thường xuyên trong quản trị hệ thống vì chúng giúp quản lý cron job nhanh chóng mà không cần truy cập trực tiếp vào file cấu hình trong hệ thống.

Hướng dẫn cách tạo và sử dụng Crontab

Sau khi cài đặt cron thành công, bạn có thể bắt đầu tạo các cron job để tự động hóa các tác vụ trên server. Quá trình thiết lập cron job khá đơn giản và chỉ cần thực hiện theo vài bước cơ bản.

Bước 1: Mở file Crontab

Đầu tiên, bạn mở Terminal và nhập lệnh sau để chỉnh sửa Crontab:

crontab -e

Lệnh này sẽ mở file Crontab trong trình soạn thảo mặc định của hệ thống.

Bước 2: Thêm cron job

Trong file Crontab, bạn cần thêm các dòng lệnh theo cú pháp:

m h dom mon dow command

Trong đó:

- m: phút (0–59)

- h: giờ (0–23)

- dom: ngày trong tháng (1–31)

- mon: tháng (1–12)

- dow: ngày trong tuần (0–7)

- command: lệnh hoặc script cần thực thi

Ví dụ:

0 2 * * * /home/user/backup.sh

Lệnh trên sẽ chạy script backup.sh vào 2 giờ sáng mỗi ngày.

Bước 3: Lưu và thoát

Sau khi thêm cron job, bạn lưu file và thoát khỏi trình soạn thảo. Cron daemon sẽ tự động đọc lại file Crontab và bắt đầu thực thi các tác vụ theo lịch đã thiết lập.

Bước 4: Kiểm tra cron job

Bạn có thể kiểm tra các công việc đã được lên lịch bằng lệnh:

crontab -l

Lệnh này sẽ hiển thị toàn bộ cron job hiện đang được cấu hình cho người dùng.

Bước 4: Kiểm tra cron job

Các lỗi thường gặp khi dùng crontab là gì?

Cron mạnh nhưng không “dễ chịu” với người mới vì môi trường chạy khác terminal và cron không phải lúc nào cũng hiển thị lỗi rõ ràng. Những lỗi phổ biến nhất thường rơi vào vài nhóm dưới đây.

Cron job không chạy

Nguyên nhân hay gặp là cron daemon đang tắt, lịch viết sai, hoặc lệnh/script không chạy được do thiếu quyền thực thi. Một lỗi khác là dùng đường dẫn tương đối thay vì tuyệt đối, khiến cron không tìm thấy file. Bạn cũng có thể gặp lỗi vì script cần biến môi trường mà terminal có nhưng cron không có.

Sai timezone server

Cron chạy theo timezone của hệ thống. Nếu VPS đặt timezone UTC còn bạn nghĩ theo giờ Việt Nam, job sẽ chạy lệch. Cách xử lý là set timezone đúng trên server, hoặc chủ động tính lịch theo timezone hiện tại. Khi vận hành production, chuyện lệch timezone là lỗi rất “đắt”, đặc biệt với job backup, job gửi báo cáo, hoặc job chạy batch xử lý dữ liệu theo ngày.

Sai quyền file script

Script muốn chạy cần có quyền execute. Bạn phải cấp quyền bằng chmod +x. Ngoài ra, nếu script truy cập file dữ liệu hoặc thư mục, user chạy cron job phải có quyền đọc/ghi phù hợp. Nhiều job fail vì chạy dưới user A nhưng thư mục thuộc user B, hoặc job cần quyền root nhưng lại chạy bằng user thường.

Kết luận

Việc nắm rõ Crontab là gì, hiểu cú pháp cron job, các lệnh crontab thường dùng cũng như cách cài đặt và quản lý cron job sẽ giúp bạn vận hành server hiệu quả hơn. Khi được cấu hình đúng cách, Crontab không chỉ giúp tiết kiệm thời gian mà còn đảm bảo các tác vụ quan trọng luôn được thực hiện đúng lịch trình, góp phần nâng cao độ ổn định và hiệu suất của hệ thống Linux.

 

Bình luận ()

Đăng nhập | Đăng ký
để gửi bình luận
Ý kiến của bạn sẽ được xét duyệt trước khi đăng.
Ý kiến của bạn sẽ được xét duyệt trước khi đăng.
Ý kiến của bạn sẽ được xét duyệt trước khi đăng.
Xem thêm bình luận

Tin liên quan

28/09/2026

Trigger là gì trong DBMS? Cách hoạt động, các loại phổ biến và ứng dụng

Trigger là gì trong DBMS? Tìm hiểu cách trigger hoạt động, các loại phổ biến, ví dụ minh họa, ưu nhược điểm và khi nào nên sử dụng.

28/09/2026

Figma là gì? Nền tảng thiết kế và cộng tác trực tuyến

Figma là gì, có những tính năng nổi bật nào? Tìm hiểu Vector Network, Auto Layout, Dev Mode và vị thế hiện tại của Figma trong ngành thiết kế.

28/09/2026

Camera Cloud cần tốc độ mạng bao nhiêu? Cách tính băng thông cần thiết

Camera Cloud cần tốc độ mạng bao nhiêu? Tìm hiểu mức băng thông cần thiết, cách tính upload và các yếu tố ảnh hưởng đến tốc độ khi sử dụng Camera Cloud.

28/09/2026

Camera Cloud có bị hack không? Nguyên nhân và cách bảo mật

Camera Cloud có bị hack không? Tìm hiểu các rủi ro bảo mật, nguyên nhân bị xâm nhập và cách bảo vệ camera, tài khoản cùng dữ liệu hiệu quả.

28/09/2026

Viettel IDC: Nhà cung cấp VMware Sovereign Cloud duy nhất tại Đông Nam Á

Tại VMware Explore 2026 ở Las Vegas, Broadcom đã giới thiệu nhóm 57 nhà cung cấp dịch vụ đám mây chủ quyền trên nền tảng VMware Cloud Foundation. Viettel IDC là đơn vị duy nhất tại Đông Nam Á có tên trong danh sách này, đánh dấu bước tiến mới của doanh nghiệp Việt Nam trên thị trường hạ tầng cloud khu vực.

25/09/2026

Ghidra là gì? Chức năng và ứng dụng trong reverse engineering

Ghidra là gì? Tìm hiểu công cụ reverse engineering mã nguồn mở của NSA, các chức năng chính, ứng dụng thực tế và điểm khác biệt với IDA Pro.

25/09/2026

10 công cụ tối ưu hóa website theo từng mục tiêu

Tổng hợp 10 công cụ tối ưu hóa web cho tốc độ, SEO, trải nghiệm người dùng và chuyển đổi, kèm bảng so sánh và gợi ý lựa chọn theo nhu cầu.

25/09/2026

So sánh WHOIS và DNS Lookup: Điểm khác nhau và khi nào nên sử dụng

WHOIS và DNS Lookup khác nhau thế nào? Tìm hiểu định nghĩa, bảng so sánh, vai trò của RDAP thay thế WHOIS, và khi nào nên dùng công cụ nào.

25/09/2026

Cách test tải hệ thống: Quy trình và công cụ phổ biến

Cách test tải hệ thống hiệu quả gồm những bước nào? Tìm hiểu quy trình, chỉ số cần đo và công cụ phổ biến như JMeter, k6.

16/01/2025

Cloud Monitoring là gì? So sánh Hybrid Cloud và Multi Cloud Monitoring

Cloud Monitoring là quá trình theo dõi, quản lý và đánh giá hiệu suất của các tài nguyên và dịch vụ đám mây, bao gồm giám sát máy chủ, cơ sở dữ liệu, ứng dụng và hệ thống mạng