Crontab là gì? Cách cài đặt, sử dụng và sửa lỗi trên Linux
Thịnh Văn Hạnh
27/05/2026
2982 Lượt xem
Chia sẻ bài viết
Crontab là một công cụ rất quen thuộc với quản trị viên hệ thống, lập trình viên và người dùng VPS Linux. Công cụ này giúp bạn tự động hóa các tác vụ lặp lại như sao lưu dữ liệu, xóa log cũ, gửi email, chạy script PHP, kiểm tra trạng thái website hoặc kích hoạt một tác vụ định kỳ trên máy chủ.
Nếu bạn đang quản lý website, VPS, Cloud Server hoặc hệ thống Linux, việc hiểu Crontab là gì và biết cách sử dụng Crontab sẽ giúp tiết kiệm nhiều thời gian vận hành. Thay vì phải chạy lệnh thủ công mỗi ngày, bạn có thể thiết lập lịch chạy tự động theo phút, giờ, ngày, tháng hoặc tuần.
Bài viết này của BKNS sẽ giúp bạn hiểu rõ Crontab, phân biệt Cron và Cron Job, nắm cú pháp chuẩn, biết cách cài đặt, sử dụng, kiểm tra log và xử lý các lỗi thường gặp khi Crontab không chạy đúng như mong muốn.
Tóm Tắt Bài Viết
Crontab là gì?
Crontab, viết tắt của Cron Table, là bảng cấu hình dùng để khai báo các tác vụ tự động chạy theo lịch trên hệ điều hành Linux/Unix. Mỗi dòng trong Crontab gồm các trường thời gian và một lệnh cần thực thi. Dịch vụ Cron sẽ đọc bảng này và chạy tác vụ đúng thời điểm đã thiết lập.
Nói dễ hiểu hơn, Crontab giống như một “lịch hẹn giờ” cho máy chủ. Bạn chỉ cần khai báo công việc cần chạy và thời điểm chạy. Hệ thống sẽ tự động thực hiện mà không cần bạn đăng nhập vào máy chủ để thao tác thủ công.

Crontab hoạt động như thế nào?
Crontab hoạt động dựa trên dịch vụ Cron chạy nền trong hệ điều hành Linux/Unix. Dịch vụ này liên tục kiểm tra các file Crontab để xác định công việc nào cần chạy tại thời điểm hiện tại.
Quy trình hoạt động cơ bản như sau:
- Người dùng tạo hoặc chỉnh sửa Crontab bằng lệnh crontab -e.
- Mỗi dòng trong Crontab chứa thời gian chạy và lệnh cần thực thi.
- Dịch vụ Cron đọc các dòng cấu hình này.
- Khi đến đúng thời điểm đã khai báo, Cron sẽ chạy lệnh tương ứng.
- Kết quả chạy lệnh có thể được gửi qua email, ghi vào log hoặc chuyển hướng vào file riêng.
Ví dụ:
*/5 * * * * /usr/bin/php /home/user/public_html/cron.php
Dòng trên có nghĩa là cứ mỗi 5 phút, hệ thống sẽ chạy file cron.php.
Điểm quan trọng là Cron chạy trong môi trường riêng, không giống hoàn toàn với phiên làm việc khi bạn đăng nhập SSH. Vì vậy, một số lệnh chạy thủ công được nhưng lại không chạy trong Crontab nếu thiếu đường dẫn tuyệt đối, thiếu biến môi trường hoặc sai quyền thực thi.

Cách cài đặt Crontab trên Linux
Trên nhiều bản phân phối Linux, Cron đã được cài sẵn. Tuy nhiên, bạn vẫn nên kiểm tra trước khi sử dụng.
Kiểm tra Cron đã được cài đặt chưa
Bạn có thể kiểm tra bằng lệnh:
crontab -l
Nếu hệ thống trả về danh sách Cron Job hoặc thông báo chưa có Crontab cho user hiện tại, nghĩa là lệnh Crontab đã tồn tại.
Bạn cũng có thể kiểm tra trạng thái dịch vụ Cron:
systemctl status cron
Trên một số hệ điều hành như CentOS/RHEL, dịch vụ có thể tên là crond:
systemctl status crond

Hướng dẫn từng bước cấu hình Cron Job đầu tiên của bạn
Việc cấu hình Cron Job lần đầu tiên có thể khiến bạn cảm thấy hơi bỡ ngỡ. Tuy nhiên, khi đã nắm rõ quy trình 4 bước dưới đây, bạn sẽ thấy nó hoàn toàn nằm trong tầm tay.
Hãy chuẩn bị sẵn quyền truy cập vào VPS Linux của mình và cùng bắt đầu nhé.
Bước 1: Mở Terminal và truy cập vào VPS Linux của bạn
Trước tiên, bạn cần mở cửa sổ Terminal trên máy tính (hoặc sử dụng phần mềm PuTTY nếu bạn đang dùng hệ điều hành Windows).
Tiến hành đăng nhập vào VPS Linux của bạn bằng tài khoản root hoặc tài khoản có quyền sudo qua giao thức SSH. Bạn có thể sử dụng cú pháp lệnh tiêu chuẩn sau:
Bash
ssh username@ip_address_vps
Sau khi nhập mật khẩu chính xác, màn hình dòng lệnh của hệ điều hành Linux sẽ xuất hiện. Lúc này, bạn đã sẵn sàng để can thiệp vào hệ thống tự động hóa của máy chủ.
Bước 2: Chọn Editor quen thuộc (Nano hoặc Vim) qua lệnh crontab -e
Để thiết lập hoặc chỉnh sửa các tác vụ tự động, Linux cung cấp cho chúng ta một bảng quản lý riêng biệt gọi là crontab (Cron Table). Bạn hãy nhập câu lệnh sau vào Terminal:
Bash
crontab -e
Lưu ý cho người mới: Nếu đây là lần đầu tiên bạn chạy lệnh này, hệ thống Linux sẽ hiển thị một danh sách các trình soạn thảo văn bản (Text Editor) để bạn lựa chọn.
- Nano: Lựa chọn hoàn hảo nhất cho người mới bắt đầu vì giao diện trực quan, có hướng dẫn phím tắt ở dưới đáy màn hình. Bạn chỉ cần bấm số 1 (hoặc số tương ứng với Nano) rồi nhấn Enter.
- Vim / Vi: Phù hợp hơn với những bạn đã có kinh nghiệm xử lý dòng lệnh chuyên sâu.
Bước 3: Viết câu lệnh Cron Job mẫu (Ví dụ: Chạy một script PHP hoặc Shell script backup)
Khi màn hình soạn thảo mở ra, bạn di chuyển con trỏ xuống dòng cuối cùng của file để chèn dòng lệnh định thời.
Cấu trúc của một dòng Cron Job chuẩn sẽ bao gồm 5 ký tự thời gian và đường dẫn đến file thực thi script.
Ví dụ 1: Tự động chạy một Script PHP lúc 00:00 mỗi ngày
Giả sử bạn cần chạy một file script dọn dẹp dữ liệu website viết bằng ngôn ngữ PHP:
Plaintext
0 0 * * * /usr/bin/php /var/www/html/cron/cleanup.php
Ví dụ 2: Tự động chạy Shell Script sao lưu (Backup) hệ thống vào 2 giờ sáng Chủ Nhật
Để bảo vệ dữ liệu an toàn trước mọi sự cố, việc thiết lập lịch backup định kỳ là cực kỳ quan trọng:
Plaintext
0 2 * * 0 /bin/bash /home/user/scripts/backup.sh
Mẹo nhỏ từ chúng tôi: Bạn nên kiểm tra kỹ đường dẫn tuyệt đối của trình thực thi (như /usr/bin/php) bằng lệnh which php trước khi lưu để tránh lỗi hệ thống không tìm thấy file.
Bước 4: Lưu file và kiểm tra trạng thái hoạt động bằng systemctl status cron
Sau khi viết xong câu lệnh ở bước 3, bạn tiến hành lưu lại file cấu hình:
- Nếu dùng Nano: Nhấn tổ hợp phím Ctrl + O, ấn Enter để xác nhận lưu, sau đó nhấn Ctrl + X để thoát ra ngoài.
- Hệ thống sẽ hiển thị thông báo: crontab: installing new crontab tức là bạn đã thiết lập thành công.
Cuối cùng, để chắc chắn dịch vụ quản lý tác vụ ẩn này đang vận hành trơn tru mà không gặp sự cố, bạn hãy chạy lệnh kiểm tra trạng thái:
Bash
sudo systemctl status cron
(Đối với một số hệ điều hành như CentOS hoặc RedHat, bạn thay thế bằng lệnh sudo systemctl status crond).
Nhìn thấy dòng chữ active (running) màu xanh lá cây xuất hiện trên màn hình? Xin chúc mừng bạn, hệ thống VPS Linux kể từ bây giờ sẽ tự động thay bạn xử lý các công việc lặp đi lặp lại một cách chính xác tuyệt đối.
Hướng dẫn cài đặt Crontab

Phần lớn các bản phân phối của Linux đều có sẵn các dạng cron cài đặt theo mặc định. Trong trường hợp bạn sử dụng Ubuntu và chưa cài đặt cron, bạn có thể cài đặt bằng APT lần lượt từng lệnh như sau:
- sudo apt update
- sudo apt install cron
- sudo systemctl enable cron
Nếu kết quả trả về trên màn hình của bạn là:
- Synchronizing state of cron.service with SysV service script with /lib/systemd/systemd-sysv-install.
- Executing: /lib/systemd/systemd-sysv-install enable cron
Đến đây nghĩa là bạn đã cài đặt Crontab trên Ubuntu thành công.
Cách sử dụng Crontab
Tiếp nối phần “Crontab hoạt động ra sao?”, chúng ta sẽ có một bảng chứa các giá trị trong công thức để bạn có thể áp dụng được như sau:
| Trường dữ liệu | Giá trị cho phép sử dụng |
| phút | 0-59 |
| giờ | 0-23 |
| Ngày trong tháng | 1-31 |
| tháng | 1-12 hoặc JAN-DEC |
| Ngày trong tuần | 0-6 hoặc SUN-SAT |
Để sử dụng, bạn chỉ cần áp dụng những giá trị trên vào cấu trúc:
Phút – giờ – ngày – trong tháng – tháng – ngày trong tuần – lệnh để chạy
Trong phần hướng dẫn sử dụng Crontab Linux, chúng tôi sẽ lượt phần lệnh để chạy do chúng tôi không biết bạn sẽ sử dụng lệnh nào để thực thi.
Ngoài ra, bạn có thể tham khảo thêm một số ví dụ:
- * * * * * – Chạy lệnh mỗi phút.
- 12 * * * * – Chạy lệnh 12 phút sau mỗi giờ.
- 0,15,30,45 * * * * – Chạy lệnh sau mỗi 15 phút.
- */15 * * * * – Chạy lệnh sau mỗi 15 phút.
- 0 4 * * * – Chạy lệnh mỗi ngày vào lúc 4:00 sáng.
- 0 4 * * 2-4 – Chạy lệnh vào lúc 4:00 sáng Thứ Ba, Thứ Tư và Thứ Năm hàng tuần.
- 20,40 */8 * 7-12 * – Chạy lệnh vào các phút 20, 40 của giờ thứ 8 hàng ngày của 6 tháng cuối năm từ tháng 7 cho đến hết tháng 12.
Quản lý đầu ra công việc của Crontab
Hầu hết tiến trình của Crontab sẽ thực hiện dưới nền. Do đó, nếu muốn kiểm tra lệnh đã thực hiện hay chưa, có lỗi gì xảy ra hay không sẽ là cả một vấn đề với người dùng phổ thông.
Tuy nhiên, chúng ta có thể sử dụng Crontab để báo cáo về việc Crontab làm thông qua email.
Nhưng trước tiên, bạn sẽ cần phải có một email server hoặc dịch vụ mail transfer đã cài đặt sẵn vào trong hosting/ server của bạn.
Một số cú pháp đặc biệt trong Crontab
Để công việc đơn giản, viết code dễ dàng hơn, dưới đây là một số lệnh viết tắt mà BKNS tổng hợp để thay thế cho câu lệnh của Crontab giúp bạn tiện sử dụng:
| Lệnh viết tắt | Viết tắt cho lệnh |
| @hourly | 0 * * * * |
| @daily | 0 0 * * * |
| @weekly | 0 0 * * 0 |
| @monthly | 0 0 1 * * |
| @yearly | 0 0 1 1 * |
| @reboot | lệnh chạy khi máy chủ khởi động |
Cách để tạo lệnh Crontab siêu nhanh

Bạn đang gấp hoặc không thích tìm hiểu nội dung dài dòng và bạn đã “skip” cả đoạn trên để đọc phần này? Vậy, bạn chỉ cần truy cập vào Crontab guru và nhập theo chỉ dẫn là code Crontab đã có sẵn cho bạn copy.
Ví dụ, bạn muốn đặt thời gian là vào lúc 22:00 vào tất cả các ngày trong tuần từ thứ Hai đến thứ Sáu, chúng ta sẽ có code Crontab như sau:
- 0 22 * * 1-5
Ngoài ra, bạn còn có thể sử dụng Crontab guru để kiểm tra xem lệnh của bạn viết ra đã đúng hay chưa và họ có phần mô tả thông tin phía trên để bạn kiểm chứng.
Lưu ý bảo mật khi sử dụng Crontab
Crontab có thể chạy các lệnh quan trọng trên hệ thống, vì vậy bạn cần cấu hình cẩn thận.
Một số lưu ý quan trọng:
- Không đặt mật khẩu database trực tiếp trong Crontab nếu không cần thiết.
- Hạn chế chạy Cron Job bằng user root nếu tác vụ không yêu cầu quyền cao.
- Luôn dùng đường dẫn tuyệt đối cho script và command.
- Phân quyền file script chặt chẽ, tránh để user lạ chỉnh sửa.
- Ghi log để kiểm tra lỗi, nhưng không ghi thông tin nhạy cảm ra log.
- Kiểm tra các file trong /etc/cron.d/, /etc/crontab và Crontab của user định kỳ.
- Không chạy script tải từ nguồn không tin cậy.
- Với các lệnh xóa file như rm hoặc find -delete, cần kiểm tra kỹ đường dẫn trước khi đưa vào Cron.
Một lỗi nhỏ trong Crontab có thể gây mất dữ liệu, xóa nhầm file hoặc làm quá tải server nếu lệnh chạy quá thường xuyên.
Crontab là công cụ quan trọng giúp tự động hóa các tác vụ định kỳ trên Linux/Unix. Khi hiểu rõ Crontab là gì, cách viết cú pháp, cách kiểm tra log và cách xử lý lỗi thường gặp, bạn có thể vận hành VPS, website hoặc hệ thống máy chủ hiệu quả hơn.
Điểm quan trọng nhất khi dùng Crontab là phải viết đúng cấu trúc, dùng đường dẫn tuyệt đối, kiểm tra quyền thực thi, ghi log đầy đủ và xác nhận timezone của server. Với các tác vụ như backup database, xóa log, chạy script PHP, gọi URL cron hoặc quản lý WordPress, Crontab là giải pháp đơn giản nhưng rất mạnh.
Nếu bạn đang sử dụng VPS hoặc máy chủ Linux, hãy thiết lập Crontab đúng cách ngay từ đầu. Điều này giúp hệ thống chạy ổn định hơn, giảm thao tác thủ công và hạn chế rủi ro bỏ sót các tác vụ quan trọng.
Tham khảo thêm:
Tìm hiểu về Whois Protect – Giải pháp bảo vệ tên miền hiệu quả



































