Cron Jobs
HƯỚNG DẪN CRON JOBS TRÊN VPANEL
Cron Jobs chạy lệnh theo lịch — mỗi giờ, mỗi ngày, mỗi 5 phút của thứ Hai thứ hai trong tháng, tuỳ nhu cầu. vPanel thay /etc/cron.d truyền thống bằng CronDispatcher in-process: mỗi phút một tick, khởi chạy job của bạn trong slice systemd theo user + sandbox bwrap. Nhờ đó CPU, RAM, đĩa được giới hạn tự động và bạn có log sạch từng lần chạy.
1. Truy cập Cron Jobs
Đăng nhập User Panel cổng :2083. Ở thanh bên, chọn Cron Jobs trong nhóm Advanced.

Các cột trong bảng
| Cột | Mô tả |
|---|---|
| Name | Nhãn thân thiện. |
| Schedule | Cron expression, VD: 0 3 * * * (3h sáng mỗi ngày). |
| Command | Lệnh sẽ chạy. Được bash thực thi dưới user của bạn. |
| Enabled | Toggle để tạm dừng / bật lại. |
| Last Run | Thời điểm chạy gần nhất. |
| Actions | Run Now, Edit, Logs, Delete. |
2. Tạo Cron Job
Nhấn Create Cron Job.

Trường cần nhập
| Trường | Mô tả |
|---|---|
| Name | Nhãn thân thiện (VD: Backup WP hằng đêm). |
| Command | Lệnh shell đầy đủ. Dùng đường dẫn tuyệt đối cho script. |
| Schedule Preset | Preset thông dụng (Every minute, Hourly, Daily, Weekly, Monthly). |
| Minute / Hour / Day / Month / Weekday | Từng ô nhỏ, dùng cú pháp cron (*, */5, 0,30, 1-5). |
Nhấn Create. Dispatcher sẽ nạp dòng mới ở tick phút kế tiếp.
Cú pháp Cron nhanh
| Vị trí | Giá trị | Ý nghĩa |
|---|---|---|
| Minute | 0-59 | Phút trong giờ |
| Hour | 0-23 | Giờ trong ngày |
| Day | 1-31 | Ngày trong tháng |
| Month | 1-12 | Tháng trong năm |
| Weekday | 0-6 | Thứ (0 = Chủ nhật) |
Ví dụ:
*/15 * * * *— mỗi 15 phút0 3 * * *— 03:00 mỗi ngày0 0 * * 0— 0h Chủ nhật0 4 1 * *— 04:00 ngày 1 hàng tháng
3. Chỉnh sửa Cron Job
Nhấn Edit trên dòng cần sửa.

Sửa trường bất kỳ rồi Save. Dispatcher hot-reload lịch, không cần restart panel.
4. Chạy ngay (Run Now)
Nhấn Run Now để chạy một lần ngoài lịch. Dòng hiện spinner; khi xong, modal báo exit code và output.

Rất tiện để test job mới ngay sau khi tạo, khỏi phải đợi tick tiếp theo.
5. Xem log
Nhấn Logs để mở lịch sử chạy.

Mỗi dòng có:
| Cột | Mô tả |
|---|---|
| Started At | Thời điểm bắt đầu. |
| Duration | Thời gian chạy (wall-clock). |
| Exit Code | 0 = thành công, khác 0 = lỗi. |
| Output | stdout + stderr đã capture, có thể mở rộng. |
| Actions | Copy output, Delete một dòng log. |
Log lưu 30 ngày mặc định, có filter theo exit code (Only failures).
6. Bật / Tắt job
Gạt toggle Enabled trên dòng. Job bị tắt vẫn nằm trong bảng nhưng dispatcher bỏ qua hoàn toàn — tiện cho việc pause job nặng khi đang debug.
7. Xử lý sự cố
Job không bao giờ chạy
- Nguyên nhân: Cron expression sai, hoặc job đang bị tắt.
- Cách xử lý: Chọn preset Every 5 minutes, bấm Run Now để đảm bảo lệnh chạy được. Rồi đặt lịch thật.
Log báo "command not found"
- Nguyên nhân: Sandbox có
PATHtối thiểu — binary trong~/bin/cần đường dẫn tuyệt đối. - Cách xử lý: Dùng
/usr/bin/php,/usr/local/bin/wp, hoặcbash -lc "…"để nạp login profile.
Log báo exit 137
- Nguyên nhân: Job vượt giới hạn RAM và bị sandbox kill.
- Cách xử lý: Giảm khối lượng công việc (chia nhỏ), hoặc xin admin nâng hạn mức RAM cron.
Job chạy 2 lần mỗi tick
- Nguyên nhân: Có hai dòng lịch chồng nhau.
- Cách xử lý: Gom về một dòng với expression rõ ràng.
Chúc bạn quản trị Server an toàn và hiệu quả!
