WP-Cron là gì? Khi nào nên dùng Server Cron cho backup WordPress
Bạn đã đặt lịch backup nhưng không thấy file mới? Hoặc cron báo đã chạy nhưng màn hình vẫn chỉ dừng ở “Đang chuẩn bị bản sao lưu”? Hai tình huống này thường bị gọi chung là “cron lỗi”, dù chúng có thể xảy ra ở những mốc khác nhau.
Mục lục
- WP-Cron là gì?
- Server Cron khác WP-Cron ở điểm nào?
- Khi nào nên giữ WP-Cron?
- Khi nào nên dùng Server Cron?
- Cấu hình cơ bản trên cPanel
- Cấu hình cơ bản trên DirectAdmin
- Cách kiểm tra trong 15 phút
- 1. Request có tới WordPress không?
- 2. Có event đến hạn không?
- 3. Job backup có bắt đầu không?
- 4. File cuối cùng ở đâu?
- Trường hợp OCC Backup: điều gì chưa được chứng minh?
- Lỗi chẩn đoán thường gặp
- Thấy cron chạy rồi tăng tần suất liên tục
- Thấy “preparing” rồi kết luận backup thành công
- Tắt WP-Cron nhưng không tạo Server Cron
- Dùng URL có thông tin nhạy cảm
- Câu hỏi thường gặp
- WP-Cron có phải cron thật của máy chủ không?
- Cứ gọi wp-cron.php mỗi năm phút thì backup cũng chạy mỗi năm phút?
- Có nên tắt WP-Cron trên mọi website không?
- OCC Backup đã chứng minh scheduled backup hoàn tất chưa?
- Kết luận
- Tài liệu tham khảo
Điểm cần nhớ trước tiên: cron được gọi chỉ chứng minh một lời gọi đã xảy ra. Nó chưa chứng minh backup đã tạo archive, upload lên nơi lưu hay khôi phục được.
Nếu bạn chưa có một quy trình backup cơ bản, hãy bắt đầu từ 5 bước kiểm tra bản backup WordPress có dùng được trước; cron chỉ là một phần của quy trình đó.
WP-Cron là gì?
WP-Cron là cơ chế WordPress dùng để kiểm tra và chạy các tác vụ đã được lên lịch. Plugin có thể đăng ký một event, còn WordPress sẽ tìm event đến hạn rồi thực thi callback tương ứng.
Khác với cron hệ điều hành chạy đúng theo đồng hồ máy chủ, WP-Cron thường được kích hoạt trong quá trình website nhận request. Vì vậy một website ít người truy cập, bị chặn request nền hoặc có cấu hình cache đặc biệt có thể xử lý event muộn hơn thời điểm bạn chọn.
Tài liệu WordPress mô tả cron như một hệ thống lập lịch cho các tác vụ của plugin và lõi WordPress. Nó không phải là bằng chứng rằng từng tác vụ đã tạo ra file cuối cùng.
Server Cron khác WP-Cron ở điểm nào?
Server Cron là lịch chạy do hosting hoặc hệ điều hành máy chủ quản lý. Thay vì chờ một request từ khách truy cập, hosting gọi URL wp-cron.php theo lịch bạn đặt.
Có thể hình dung như sau:
| Mốc | Câu hỏi cần trả lời |
|---|---|
| Server Cron | Hosting có gọi được WordPress không? |
| WP-Cron | WordPress có nhìn thấy event đã đến hạn không? |
| Plugin backup | Job backup có thực sự bắt đầu không? |
| Nơi lưu | Archive có được tạo và xuất hiện ở nơi cần lưu không? |
Server Cron cải thiện cách đánh thức WordPress. Nó không tự sửa quyền thư mục, thiếu dung lượng, lỗi OAuth, lỗi plugin hoặc chuỗi upload bị dừng.
Khi nào nên giữ WP-Cron?
Bạn có thể giữ cơ chế mặc định khi website có traffic ổn định, event chạy đúng giờ và bạn đã kiểm tra được file backup cuối cùng. Cách này đơn giản hơn vì không cần thêm một job trong cPanel hoặc DirectAdmin.
Trước khi kết luận WP-Cron không hoạt động, hãy kiểm tra:
- event có được đăng ký hay không;
- thời điểm kế tiếp có đến hạn chưa;
- website có trả lời request nền bình thường không;
- hosting có chặn loopback hoặc request tới chính website không;
- backup có tạo file thật ở nơi lưu hay chỉ hiển thị trạng thái bắt đầu.
Khi nào nên dùng Server Cron?
Server Cron hợp lý khi bạn muốn quyền gọi cron nằm ở hosting, website ít traffic, hoặc WP-Cron phụ thuộc vào request người dùng khiến lịch bị trễ. cPanel và nhiều hosting khác cho phép tạo job gọi wp-cron.php; tên trường và quyền có thể khác nhau.
Nếu chuyển sang Server Cron, đừng coi “mỗi 5 phút” là tần suất tạo backup. Đó chỉ là nhịp đánh thức để WordPress kiểm tra event. Tần suất backup đã chọn và logic đến hạn của plugin mới quyết định job backup có được phép chạy.
Cấu hình cơ bản trên cPanel
Trong cPanel, mở Cron Jobs rồi tạo một job mới:
- Chọn lịch phù hợp, thường là Once Per Five Minutes nếu hướng dẫn của plugin yêu cầu kiểm tra thường xuyên.
- Dán lệnh gọi
wp-cron.phpdo chính website/plugin cung cấp. - Không thêm token, mật khẩu hoặc tham số không có trong lệnh gốc.
- Lưu job.
- Quay lại WordPress, chạy công cụ kiểm tra cron và ghi lại thời điểm kiểm tra.
Sau đó, kiểm tra archive hoặc file đầu ra. Nếu chỉ thấy log “đã gọi” mà không có file, hãy dừng ở mốc chẩn đoán đó thay vì tăng tần suất job.
Cấu hình cơ bản trên DirectAdmin
Trong DirectAdmin, vào phần Cron Jobs và tạo lịch mới. Nếu giao diện dùng các ô phút, giờ, ngày, tháng và thứ:
- Đặt phút là
*/5nếu cần gọi mỗi năm phút. - Để các trường còn lại là
*. - Dán lệnh
wp-cron.phpchính xác vào ô command. - Lưu cron.
- Trở lại WordPress và chạy kiểm tra hiện có.
Một số giao diện hosting hiển thị trường khác hoặc giới hạn tần suất. Hãy ưu tiên tài liệu của nhà cung cấp nếu tên mục không giống hướng dẫn trên.
Khi đã chọn công cụ backup, bạn có thể dùng bảng tiêu chí chọn plugin backup WordPress để đối chiếu nơi lưu, file đầu ra và đường khôi phục, thay vì chỉ so sánh số lượng tính năng.
Cách kiểm tra trong 15 phút
Đừng chỉ nhìn một thông báo xanh. Ghi lại bốn mốc sau:
1. Request có tới WordPress không?
Kiểm tra thời điểm job chạy, mã phản hồi hoặc log nếu hosting cung cấp. Với WP-CLI, lệnh wp cron event run có thể dùng để chạy một event cụ thể trong môi trường bạn kiểm soát.
2. Có event đến hạn không?
Một request thành công nhưng không có event đến hạn vẫn không tạo ra backup. Hãy xem lịch kế tiếp và tần suất đã chọn.
3. Job backup có bắt đầu không?
Ghi lại trạng thái bắt đầu, preparing, uploading hoặc failed nếu công cụ hiển thị. “Đang chuẩn bị” là mốc giữa quy trình, không phải kết quả cuối.
4. File cuối cùng ở đâu?
Mở nơi lưu trực tiếp và tìm archive mới theo tên, thời gian, kích thước hợp lý. Nếu dùng kho ngoài hosting, hãy kiểm tra đúng thư mục. Sau đó mới xem xét đường import/restore trên staging.
Trường hợp OCC Backup: điều gì chưa được chứng minh?
Biên bản kiểm thử hiện có của OCC Backup chưa có staging disposable, log heartbeat, archive test hoặc test Drive đủ để chứng minh một scheduled run đã đi hết quy trình. Vì vậy, bài này không tuyên bố scheduled OCC backup đã hoàn tất end-to-end.
Claim về archive và Drive upload tự động là REQUIRES END-TO-END STAGING VALIDATION BEFORE PUBLISH. Đây cũng là lý do bài hướng dẫn bạn kiểm tra bốn mốc: cùng một tiêu chuẩn phải áp dụng cho OCC và bất kỳ công cụ backup nào khác.
Lỗi chẩn đoán thường gặp
Thấy cron chạy rồi tăng tần suất liên tục
Nếu event chưa đến hạn hoặc job trước còn dở, gọi dày hơn không giải quyết được nguyên nhân. Kiểm tra due-time, log và file trước.
Thấy “preparing” rồi kết luận backup thành công
Trạng thái chuẩn bị chỉ cho biết quy trình đã bắt đầu. Cần archive, nơi lưu và trạng thái hoàn tất.
Tắt WP-Cron nhưng không tạo Server Cron
Khi WordPress không còn tự gọi cron mà hosting cũng chưa gọi wp-cron.php, event có thể không chạy. Chỉ tắt cơ chế mặc định sau khi job thay thế đã được tạo và kiểm tra.
Dùng URL có thông tin nhạy cảm
Command cron không nên chứa mật khẩu, OAuth secret hoặc thông tin đăng nhập hosting. Nếu plugin tạo URL có tham số bảo vệ, hãy dùng đúng URL được hiển thị và không chia sẻ công khai.
Câu hỏi thường gặp
WP-Cron có phải cron thật của máy chủ không?
Không. WP-Cron là cơ chế lập lịch trong WordPress. Server Cron là lịch do hosting/máy chủ gọi tới WordPress.
Cứ gọi wp-cron.php mỗi năm phút thì backup cũng chạy mỗi năm phút?
Không nhất thiết. Event đến hạn và cấu hình backup vẫn quyết định job có chạy hay không. Hãy kiểm tra file thật và thời điểm backup, không suy ra từ số lần gọi URL.
Có nên tắt WP-Cron trên mọi website không?
Không. Chỉ nên chuyển sang Server Cron khi bạn có lý do vận hành rõ, quyền cấu hình hosting và đã kiểm tra job thay thế.
OCC Backup đã chứng minh scheduled backup hoàn tất chưa?
Chưa. Biên bản staging hiện chưa có đủ môi trường và bằng chứng để xác nhận scheduled archive/upload end-to-end. Cần kiểm thử riêng trước khi gọi đó là hành vi production-proven.
Kết luận
WP-Cron và Server Cron là hai cách đánh thức cơ chế lập lịch, không phải hai lời cam kết rằng backup đã an toàn. Hãy kiểm tra theo thứ tự: request tới WordPress, event đến hạn, job bắt đầu, archive xuất hiện ở nơi lưu và đường khôi phục đã được thử trên staging.
Nếu website của bạn cần Server Cron, hãy dùng đúng command do hệ thống cung cấp, đặt lịch phù hợp trên cPanel hoặc DirectAdmin, rồi quay lại WordPress để kiểm tra. Sau khi có file thật, bạn mới có bằng chứng để tin vào quy trình backup.
Với workflow cần lưu bản sao ngoài hosting, xem thêm cách kiểm tra backup WordPress trên Google Drive.
Tài liệu tham khảo
- WordPress Plugin Handbook — Cron
- WP-CLI — wp cron event run
- cPanel — Cron Jobs
- WordPress Developer Resources — Backups