Cronjob là gì, chạy trên hosting và VPS thế nào cho website

Cronjob là lệnh đặt lịch cho máy chủ tự chạy tác vụ theo chu kỳ: sao lưu, dọn file, gửi báo cáo. Bài giải thích cú pháp lịch và khác biệt hosting với VPS.

Cronjob là lệnh đặt lịch cho máy chủ tự chạy một tác vụ theo chu kỳ cố định, không cần người bấm tay mỗi lần. Trên website, việc đặt lịch tự động này đứng sau nhiều việc quen thuộc: sao lưu dữ liệu, dọn file tạm, gửi báo cáo qua email, đồng bộ tồn kho, hoặc gọi đúng giờ tác vụ định kỳ của WordPress thay vì chờ có khách ghé trang.

Minh hoạ cho bài Cronjob là gì, chạy trên hosting và VPS thế nào cho website

Người quản trị website không cần biết viết code để dùng công cụ này. Việc cần làm là xác định tác vụ nào lặp lại, chọn thời điểm ít ảnh hưởng tới khách truy cập, rồi khai lịch chạy qua giao diện panel hoặc dòng lệnh. Một cửa hàng online chạy trên gói Linux Hosting SSD NVMe có thể đặt lịch tự động đồng bộ giá mỗi đêm, còn bộ phận kế toán có thể đặt lịch xuất báo cáo doanh thu mỗi tuần vào sáng thứ Hai.

Cú pháp lịch chạy Cronjob đọc thế nào

Một dòng lịch chạy tự động có năm ô thời gian cách nhau bằng khoảng trắng: phút, giờ, ngày trong tháng, tháng, và thứ trong tuần. Dấu sao (*) nghĩa là "mọi giá trị". Ô nào ghi số cụ thể thì tác vụ chỉ chạy đúng thời điểm đó, ô nào để dấu sao thì ô đó không giới hạn.

Theo tài liệu crontab chuẩn POSIX (crontab(5)), mỗi ô nhận giá trị trong phạm vi cố định: phút từ 0 đến 59, giờ từ 0 đến 23, ngày trong tháng từ 1 đến 31, tháng từ 1 đến 12, thứ trong tuần từ 0 đến 7 (cả 0 và 7 đều là Chủ nhật). Dấu gạch chéo */n nghĩa là lặp lại mỗi n đơn vị, ví dụ */15 * * * * chạy mỗi 15 phút.

Vài lịch chạy hay dùng cho website

Không cần nhớ hết cú pháp, chỉ cần vài mẫu lịch hay dùng là đủ cho phần lớn website doanh nghiệp. Bốn ví dụ dưới đây bao trùm gần hết nhu cầu thường gặp: sao lưu, dọn dẹp, báo cáo, và đồng bộ dữ liệu.

  • 0 2 * * *: chạy lúc 2 giờ sáng mỗi ngày, hợp cho việc sao lưu vì ít người truy cập.
  • */15 * * * *: chạy mỗi 15 phút, hợp cho đồng bộ đơn hàng hoặc tồn kho cần cập nhật nhanh.
  • 0 0 * * 0: chạy lúc 0 giờ mỗi Chủ nhật, hợp cho báo cáo tuần.
  • 0 9 1 * *: chạy lúc 9 giờ sáng ngày 1 mỗi tháng, hợp cho báo cáo tháng gửi cho ban lãnh đạo.

Đặt Cronjob trên hosting dùng panel khác VPS chỗ nào

Trên hosting dùng panel như Plesk hoặc DirectAdmin, quản trị viên khai lịch chạy qua giao diện web, không cần gõ lệnh, nhưng tần suất và số lượng tác vụ bị nhà cung cấp giới hạn theo gói dịch vụ. Trên VPS, người dùng có toàn quyền chỉnh trực tiếp file crontab qua SSH, không giới hạn số lượng tác vụ, nhưng tự chịu trách nhiệm nếu đặt sai làm quá tải máy.

Plesk gọi tính năng này là Scheduled Tasks, DirectAdmin gọi là Cron Jobs, cả hai đều cho chọn phút, giờ, ngày qua ô nhập liệu thay vì gõ năm ô dấu sao. Muốn phân biệt kỹ hai panel này trước khi chọn gói, có thể đọc thêm bài so sánh Plesk và DirectAdmin. Doanh nghiệp không có nhân sự kỹ thuật riêng có thể giao việc đặt lịch cho dịch vụ quản trị máy chủ trọn gói thay vì tự mò cú pháp.

Cronjob cần chạy ổn định, không phụ thuộc lượt khách?

Gói hostStart Linux Hosting của BizMaC từ 29.000đ/tháng đã có panel Plesk hoặc DirectAdmin để khai lịch chạy qua giao diện, không cần gõ dòng lệnh.

Xem bảng giá Linux Hosting

Lỗi hay gặp khi đặt lịch chạy tự động và cách nhận biết

Bốn lỗi dưới đây lặp lại nhiều nhất khi quản trị viên tự đặt lịch lần đầu, phần lớn không hiện lỗi rõ ràng nên dễ bị bỏ qua cho tới khi hậu quả lộ ra.

  • Đặt chạy quá dày: lịch kiểu mỗi phút cho một script nặng làm máy chủ liên tục bận xử lý, ảnh hưởng tốc độ tải trang của khách đang truy cập.
  • Sai đường dẫn tuyệt đối: tác vụ không chạy trong thư mục làm việc như khi gõ lệnh thủ công, đường dẫn tương đối kiểu ./script.sh thường không tìm thấy file.
  • Không ghi log: tác vụ chạy xong không để lại dấu vết, tới lúc dữ liệu sai mới biết lịch chạy đã âm thầm lỗi từ nhiều ngày trước.
  • Tưởng WordPress tự chạy đúng giờ: tác vụ định kỳ mặc định của WordPress (wp-cron.php) chỉ được kiểm tra khi có người truy cập trang, không chạy theo đồng hồ hệ thống. Website ít khách vào ban đêm thì lịch đăng bài hẹn giờ hoặc dọn rác định kỳ có thể trễ nhiều giờ. Website nào phụ thuộc nhiều vào tác vụ nền nên đọc thêm về hosting phù hợp cho WordPress để chọn cấu hình có sẵn lịch chạy thật thay wp-cron mặc định.

Theo tài liệu WordPress.org về wp-cron.php, cơ chế này mô phỏng lịch chạy bằng cách kiểm tra mỗi khi có lượt tải trang, không phải một tiến trình chạy nền độc lập của hệ điều hành.

Việc cần lặp, chu kỳ hợp lý, chạy trên hosting hay cần VPS

Bảng dưới liệt kê những tác vụ định kỳ phổ biến nhất trên website doanh nghiệp, kèm chu kỳ hợp lý và nơi chạy được: hosting dùng panel hay bắt buộc phải lên VPS. Tác vụ càng chạy dày và càng nặng tài nguyên thì càng cần môi trường không bị giới hạn tần suất.

Việc cần lặpChu kỳ hợp lýHosting (panel)VPS
Sao lưu toàn bộ website1 lần/ngày, giờ ít kháchChạy được, nếu gói cho đặt lịch theo ngàyChạy được, tự chọn giờ chính xác
Dọn file tạm và cache1 lần/tuầnChạy đượcChạy được
Gửi báo cáo qua email1 lần/tuần hoặc 1 lần/thángChạy đượcChạy được
Đồng bộ tồn kho, giá sản phẩmMỗi 15 – 30 phútHạn chế, tùy góiChạy được, không giới hạn tần suất
Gọi thay tác vụ định kỳ WordPressMỗi 5 – 15 phútHạn chế tần suấtChạy được, ổn định vì chủ động gọi

Nếu nhu cầu của bạn chỉ cần vài lịch cố định như sao lưu ban đêm hoặc báo cáo tuần, hosting Linux có sẵn Plesk là đủ dùng ngay, chưa cần chuyển lên VPS.

Câu hỏi thường gặp về Cronjob

Lịch chạy tự động có chạy được trên hosting giá rẻ không?
Chạy được nếu gói có panel Plesk hoặc DirectAdmin, nhưng tần suất và số lượng tác vụ bị giới hạn theo cấu hình gói. Cần chạy nhiều tác vụ dày thì nên chuyển lên VPS.

Tác vụ định kỳ này và wp-cron của WordPress có phải một thứ không?
Không. Đây là tiến trình của hệ điều hành, chạy đúng giờ dù không ai truy cập. wp-cron.php chỉ được WordPress kiểm tra khi có lượt tải trang, nên trên site ít khách nó có thể trễ.

Đặt lịch chạy mỗi phút có sao không?
Tùy tác vụ. Lệnh nhẹ như kiểm tra file thì không vấn đề, nhưng script nặng như xuất báo cáo hoặc đồng bộ dữ liệu lớn chạy mỗi phút sẽ làm máy chủ liên tục bận, ảnh hưởng tốc độ tải trang.

Làm sao biết tác vụ đã chạy hay chưa?
Ghi log ra file mỗi lần chạy, hoặc để script gửi email báo kết quả. Không ghi log là nguyên nhân phổ biến nhất khiến lỗi kéo dài nhiều ngày mới bị phát hiện.

Ghi nhanh

Cronjob giải quyết đúng một việc: để máy chủ tự làm những tác vụ lặp lại mà không cần người ngồi bấm tay. Nắm năm ô thời gian, chọn giờ ít ảnh hưởng khách truy cập, và ghi log lại là đủ để vận hành ổn định.

  • Hosting dùng panel: đủ cho lịch cố định như sao lưu, báo cáo, dọn dẹp.
  • VPS: cần khi tác vụ chạy dày, nặng tài nguyên, hoặc muốn gọi thay wp-cron mặc định của WordPress.
  • Luôn kiểm đường dẫn tuyệt đối và bật log, tránh để lỗi âm thầm kéo dài.

Lưu ý: Bài viết chia kinh nghiệm chung, còn mỗi doanh nghiệp một quy mô và một cách vận hành. Muốn biết cách nào hợp với trường hợp của bạn — chọn gói nào, làm theo thứ tự nào, chi phí ra sao — chuyên viên BizMaC tư vấn và làm giúp bạn phần kỹ thuật.

Đọc rồi mà vẫn ngại tự làm?

Để BizMaC dựng website cho doanh nghiệp bạn

Giao diện chuẩn UX, cấu trúc chuẩn SEO, chạy mượt trên di động và dễ tự quản trị sau khi bàn giao. BizMaC làm website cho doanh nghiệp Việt từ năm 2007, đi kèm hướng dẫn vận hành chứ không bàn giao xong là hết.

Khách hàng và các chỉ số lượt theo dõi, độ phủ, doanh thu của một website doanh nghiệp