Cron Job trên Linux là gì? Tự động hóa công việc trên VPS như thế nào?
Cùng PIKAMC tìm hiểu bản chất của Cron Job và cách thiết lập tự động hóa công việc trên VPS Linux ngay dưới đây!
1. Cron Job Là Gì?
- Cron: Là một dịch vụ daemon (chạy ngầm) trong các hệ điều hành họ Unix/Linux, có nhiệm vụ theo dõi thời gian và tự động thực thi các câu lệnh hoặc kịch bản (script) được lên lịch từ trước.
- Cron Job: Là một tác vụ cụ thể được khai báo trong hệ thống Cron, bao gồm thời điểm chạy và câu lệnh cần thực thi.
Ý Nghĩa Của Cron Job Trong Quản Trị VPS:
- Sao Lưu Dữ Liệu Tự Động (Auto Backup): Tự động nén source code và xuất database MySQL lưu sang hạ tầng lưu trữ khác vào 2h sáng mỗi ngày.
- Dọn Dẹp Bộ Nhớ & Log Rác: Tự động xóa các file Cache cũ, log truy cập quá hạn để giải phóng dung lượng ổ cứng NVMe.
- Gửi Email / Thông Báo Định Kỳ: Tự động chạy các tiến trình gửi bản tin email marketing hoặc đồng bộ dữ liệu tồn kho cho website bán hàng.
- Kiểm Tra & Khởi Động Sơ Cấp (Health Check): Tự động kiểm tra nếu dịch vụ (Nginx, PHP-FPM, MySQL) bị sập thì tự động khởi động lại.

2. Cấu Trúc Đủ 5 Dấu Sao Của Cron Job
Để lập lịch cho Cron Job, người ta sử dụng tệp cấu hình gọi là Crontab (Cron Table). Mỗi dòng trong Crontab biểu diễn một tác vụ với cú pháp tiêu chuẩn gồm 5 trường thời gian theo sau bởi câu lệnh thực thi:
Plaintext
* * * * * command_to_execute
│ │ │ │ │
│ │ │ │ └─── Ngày trong tuần (0 - 6) (Chủ nhật = 0 hoặc 7)
│ │ │ └────── Tháng (1 - 12)
│ │ └──────── Ngày trong tháng (1 - 31)
│ └────────── Giờ (0 - 23)
└──────────── Phút (0 - 59)
Ký Tự Đặc Biệt Cần Lưu Ý:
- * (Asterisk): Đại diện cho mọi giá trị (chạy mỗi phút/mỗi giờ/mỗi ngày...).
- , (Comma): Phân tách các mốc thời gian (ví dụ: 1,15,30 ở trường phút = phút thứ 1, 15 và 30).
- - (Hyphen): Xác định khoảng thời gian (ví dụ: 1-5 ở trường ngày trong tuần = từ Thứ 2 đến Thứ 6).
- / (Slash): Xác định bước nhảy (ví dụ: */15 ở trường phút = cứ mỗi 15 phút một lần).

3. Các Ví Dụ Khai Báo Cron Job Thực Tế
Mục đích đặt lịch Cú pháp trong Crontab
Chạy câu lệnh mỗi 5 phút một lần */5 * * * * /usr/bin/php /var/www/script.php
Chạy backup vào lúc 2:00 sáng mỗi ngày 0 2 * * * /bin/bash /backup_script.sh
Chạy dọn dẹp log vào 3:30 sáng Chủ Nhật hàng tuần 30 3 * * 0 /bin/bash /clean_logs.sh
Khởi động lại dịch vụ vào ngày đầu tiên của tháng lúc 0:00 0 0 1 * * systemctl restart nginx
4. Hướng Dẫn Các Thao Tác Quản Lý Crontab Bằng Command Line
Để chỉnh sửa hoặc xem danh sách Cron Job trên VPS Linux, bạn sử dụng các lệnh SSH cơ bản sau:
4.1 Chỉnh sửa danh sách Cron Job của user hiện tại:
(Hệ thống sẽ mở trình biên soạn thảo văn bản như Nano hoặc Vi để bạn nhập các dòng lệnh)