Mất trắng dữ liệu website là cơn ác mộng có thật, mình đã từng “đứng tim” một lần vì lỗi hosting. Nhưng bạn không cần phải sống trong lo sợ như vậy. Có một cách cực kỳ đơn giản để thiết lập “bảo hiểm” cho website của bạn, chỉ mất 15 phút cài đặt một lần duy nhất với Cron Job trong cPanel là có thể ngủ ngon mỗi đêm. Cùng Phạm Hải xem lại toàn bộ kinh nghiệm xương máu này để biết làm sao để không mất dữ liệu website cPanel ngay đây nhé.
Hướng dẫn cài đặt backup website cPanel tự động từ A-Z với Cron Job
Tính đến các bản cập nhật mới nhất của cPanel trong năm 2026, thiết lập sao lưu tự động cPanel bằng Cron Job vẫn là phương pháp sử dụng một đoạn mã PHP kết hợp với bộ lập lịch trên máy chủ để tự động nén mã nguồn và xuất database theo chu kỳ. Cách làm này giúp bạn có ngay một phần mềm backup tự động cPanel miễn phí mà không cần cài thêm các plugin nặng nề làm chậm tốc độ tải trang.
Tại sao phải dùng Cron Job mà không phải tính năng Backup có sẵn?
Việc dùng Cron Job giúp tự động hóa sao lưu hoàn toàn theo lịch trình bạn muốn (hàng ngày, hàng tuần) mà không cần đăng nhập thủ công vào bảng điều khiển cPanel mỗi lần cần sao lưu.
Tính năng Backup mặc định của hệ thống thường yêu cầu bạn thao tác bằng tay. Nếu bạn bận rộn và quên mất, rủi ro mất dữ liệu khi xảy ra tấn công mạng hay lỗi hosting là rất cao. Bằng cách thiết lập Cron Job, hệ thống sẽ tự động chạy ngầm. Đây là cách Auto backup website tự động hàng ngày hiệu quả nhất mà mình áp dụng cho mọi dự án. Nó đặc biệt hữu ích khi bạn muốn bảo vệ dữ liệu website liên tục mà không tốn công sức. Hơn nữa, với các website có lượng dữ liệu lớn, việc tự động hóa sao lưu vào ban đêm sẽ không làm ảnh hưởng đến trải nghiệm của người truy cập vào ban ngày.
Bước 1: Chuẩn bị Script PHP để tự động nén mã nguồn và database
Bước đầu tiên trong hướng dẫn sao lưu website cPanel từng bước là tạo một file PHP (ví dụ: backup.php) chứa các lệnh thực thi nén thư mục public_html và xuất database MySQL.
Bạn có thể sử dụng đoạn mã PHP cơ bản dưới đây. Đoạn mã này sử dụng hàm exec() trong PHP để chạy lệnh nén file .tar.gz trên server Linux và lệnh mysqldump để tạo file .sql.
<?php
// Thông tin cấu hình Database
$dbhost = 'localhost';
$dbuser = 'ten_user_db';
$dbpass = 'mat_khau_db';
$dbname = 'ten_database';
// Cấu hình đường dẫn và tên file backup
$date = date("Y-m-d_H-i-s");
// Lưu ý: Thay 'your_username' bằng username cPanel của bạn
$db_backup_file = "/home/your_username/backups/db_".$date.".sql.gz";
$file_backup = "/home/your_username/backups/files_".$date.".tar.gz";
// Lệnh thực thi backup
$cmd_db = "mysqldump --opt -h $dbhost -u $dbuser -p$dbpass $dbname | gzip > $db_backup_file";
$cmd_files = "tar -czf $file_backup /home/your_username/public_html";
// Chạy lệnh
exec($cmd_db);
exec($cmd_files);
echo "Quá trình backup đã hoàn tất thành công!";
?>
Bảng giải thích các thông số trong Script:
| Thông số | Ý nghĩa | Cần thay đổi không? |
|---|---|---|
$dbuser, $dbpass |
Tên đăng nhập và mật khẩu của Database | Có (Nhập đúng thông tin web) |
$dbname |
Tên cơ sở dữ liệu của website | Có |
your_username |
Tên người dùng tài khoản hosting cPanel của bạn | Có |
Đoạn script nhỏ gọn này chính là cốt lõi để Backup restore database MySQL tự động và nén toàn bộ mã nguồn một cách trơn tru. Bạn có thể dùng Notepad hoặc bất kỳ trình soạn thảo văn bản nào để tạo file này và lưu lại với đuôi .php.
Bước 2: Upload Script lên thư mục gốc của hosting qua File Manager
Sau khi có file backup.php, bạn đăng nhập vào cPanel, mở File Manager và tải file này lên một thư mục bí mật (không nằm trong public_html) để đảm bảo an toàn.
Thao tác với File Manager rất trực quan và dễ thao tác. Nếu bạn chưa quen với giao diện này, có thể xem thêm bài viết cPanel hướng dẫn sử dụng cho người mới để nắm rõ các khu vực quản lý. Dưới đây là các bước chi tiết:
- Đăng nhập vào hệ thống quản trị hosting.
- Tìm đến phần Files và click vào File Manager.
- Điều hướng đến thư mục gốc (thường là
/home/your_username/). Lưu ý tuyệt đối đừng vào trongpublic_htmlnhé. - Tạo một thư mục mới tên là
scriptsngang hàng vớipublic_html. - Nhấn nút Upload ở thanh công cụ phía trên và chọn file
backup.phpvừa tạo. - Đừng quên tạo thêm một thư mục tên là
backupscũng tại thư mục gốc để script có nơi lưu trữ các bản sao lưu sau khi chạy. - Đặt quyền (CHMOD) cho file
backup.phplà 0755 để server cấp quyền thực thi nó.
Bước 3: Cấu hình Cron Job trong cPanel để chạy file script định kỳ
Truy cập mục Cron Jobs trong cPanel, thiết lập tần suất sao lưu (ví dụ: mỗi đêm lúc 2h sáng) và nhập lệnh thực thi file PHP để kích hoạt quy trình sao lưu.
Kéo xuống phần Advanced trong cPanel và click vào Cron Jobs. Tại phần “Add New Cron Job”, bạn sẽ thấy các tùy chọn thời gian. Mình khuyên bạn nên chọn “Once Per Day” (Mỗi ngày một lần) vào lúc rạng sáng (ví dụ 2:00 AM) để không làm ảnh hưởng tốc độ web khi có nhiều người truy cập.
Tại ô Command (Lệnh), bạn nhập đường dẫn thực thi PHP như sau:
php -q /home/your_username/scripts/backup.php
Nhấn Add New Cron Job là xong. Đây chính là cách backup website cPanel tự động cực kỳ nhẹ nhàng và chuẩn xác. Bạn không cần phải nhớ lịch, hệ thống sẽ làm việc đó thay bạn.
Bước 4: Kiểm tra lại và nhận file backup tự động gửi về email (hoặc lưu tại thư mục chỉ định)
Sau khi thiết lập, bạn có thể chạy thử lệnh Cron Job hoặc chờ đến giờ hẹn, sau đó kiểm tra trong thư mục backups xem file .tar.gz và .sql đã được tạo thành công hay chưa.
Trong mục Cron Jobs, bạn cũng có thể nhập địa chỉ email của mình vào phần “Cron Email”. Hệ thống sẽ gửi thông báo mỗi khi hoàn tất hoặc báo lỗi nếu thất bại. Việc nhận thông báo giúp bạn chủ động kiểm soát tình hình. Tại Phạm Hải, chúng mình luôn yêu cầu team kỹ thuật phải check log này thường xuyên. Một lưu ý nhỏ là quá trình backup có thể thất bại nếu hosting của bạn bị đầy dung lượng (vượt quá data quota). Vì vậy, hãy luôn để trống ít nhất 30-40% dung lượng hosting nhé.
Các phương pháp backup “truyền thống” và trường hợp sử dụng

Ngoài việc dùng Cron Job, cPanel cung cấp sẵn công cụ cPanel Backup Wizard cho phép bạn thực hiện Full Backup hoặc Partial Backup bằng tay một cách trực quan, phù hợp cho những nhu cầu sao lưu đột xuất.
Backup toàn bộ (Full Backup) bằng cPanel Backup Wizard: Nhanh gọn nhưng dễ quên
Full Backup sẽ đóng gói toàn bộ tài khoản hosting bao gồm Home Directory, MySQL Database, email forwarders và cấu hình thành một file nén duy nhất, rất hữu ích khi bạn muốn chuyển nhà cung cấp hosting.
Để thực hiện backup full website cPanel, bạn vào mục Files > Backup Wizard > Backup > Full Backup. Tại đây, bạn chọn “Home Directory” làm nơi lưu trữ (Backup Destination) và nhập email để nhận thông báo khi hoàn thành. Sau đó nhấn “Generate Backup”.
Tuy nhiên, bản Full Backup này có một nhược điểm là bạn không thể dùng nó để khôi phục trực tiếp từ giao diện cPanel thông thường mà phải nhờ đến quyền root của quản trị viên máy chủ (Web Host Manager – WHM). Phương pháp này rất tốt để lưu trữ định kỳ hàng tháng, nhưng vì phải làm thủ công nên bạn sẽ rất dễ quên.
Backup từng phần (Partial Backup): Khi nào bạn chỉ cần sao lưu Home Directory hoặc MySQL Database?
Partial Backup cho phép bạn tải riêng lẻ Home Directory (mã nguồn, hình ảnh) hoặc sao lưu database mysql cPanel, thích hợp cho việc tải về máy tính cá nhân nhanh chóng để chỉnh sửa nhỏ.
Nếu bạn chỉ vừa đăng một bài viết mới hoặc có vài đơn hàng mới, bạn không cần backup toàn bộ. Lúc này, chỉ cần vào Backup Wizard, chọn Partial Backup và tải phần MySQL Database là đủ. Hoặc bạn cũng có thể dùng công cụ phpMyAdmin export để xuất file .sql riêng lẻ.
Đối với những ai đang tìm cách backup wordpress trên cPanel, việc sao lưu riêng thư mục wp-content trong Home Directory và Database là cách làm tối ưu nhất để tiết kiệm thời gian và dung lượng. Để đảm bảo an toàn toàn diện cho trang web, bên cạnh việc sao lưu, bạn nên kết hợp với các giải pháp bảo mật website wordpress chuyên sâu như cài đặt tường lửa hoặc đổi đường dẫn đăng nhập.
Kinh nghiệm cá nhân: Mình đã kết hợp cả backup tự động và thủ công như thế nào cho an toàn?
Kinh nghiệm của mình là sử dụng Cron Job để sao lưu tự động hàng ngày cho Database, và thực hiện Full Backup thủ công mỗi tháng một lần trước khi cập nhật core hệ thống.
Việc tích hợp backup nhiều lớp giúp giảm thiểu tối đa rủi ro. Mình từng gặp trường hợp file tự động bị lỗi do hosting hết dung lượng đột ngột. Nhờ có bản Full Backup thủ công lưu trên ổ cứng máy tính từ tuần trước, mình đã cứu sống toàn bộ dự án. Đối với các trang web dùng mã nguồn mở, việc backup website wordpress thường xuyên theo cả 2 phương pháp này là nguyên tắc sống còn mà bất kỳ webmaster nào cũng phải nằm lòng. Tần suất sao lưu phụ thuộc vào mức độ cập nhật nội dung của bạn, nhưng “cẩn tắc vô áy náy”, thà dư thừa còn hơn mất mát.
Lưu trữ và khôi phục bản backup: Bước quan trọng không thể bỏ qua

Bản sao lưu chỉ thực sự có giá trị khi nó được lưu trữ ở một nơi an toàn ngoài hosting và bạn nắm rõ quy trình khôi phục dữ liệu website từ cPanel (restore dữ liệu) khi có sự cố xảy ra.
Đừng bao giờ lưu bản backup trên cùng hosting! Gợi ý các nơi lưu trữ an toàn (Google Drive, Dropbox…)
Lưu trữ bản backup website an toàn đồng nghĩa với việc đẩy file backup ra khỏi server hiện tại lên các dịch vụ lưu trữ đám mây như Google Drive, Dropbox hoặc Amazon S3.
Nếu server bị hỏng ổ cứng vật lý hoặc dính mã độc tống tiền (ransomware), toàn bộ file trên hosting (kể cả thư mục backups bạn vừa tạo) đều sẽ “bốc hơi” hoặc bị mã hóa. Tại Phạm Hải, chúng mình khuyên bạn nên tải file về máy tính định kỳ hoặc dùng các script nâng cao để tự động đẩy file nén lên Google Drive. Đây là lớp phòng thủ cuối cùng chống lại mọi thảm họa.
Gợi ý một số nền tảng lưu trữ đám mây phổ biến:
| Nền tảng | Ưu điểm | Dung lượng miễn phí |
|---|---|---|
| Google Drive | Dễ sử dụng, đồng bộ tốt | 15 GB |
| Dropbox | Tốc độ tải lên/xuống nhanh | 2 GB |
| OneDrive | Tích hợp sẵn trên Windows | 5 GB |
Hướng dẫn chi tiết cách khôi phục (restore) website từ file .tar.gz và file .sql khi gặp sự cố
Để khôi phục dữ liệu, bạn cần giải nén file .tar.gz đè lên thư mục public_html qua File Manager, và dùng công cụ phpMyAdmin để Import lại file .sql vào database.
Khi website bị lỗi trắng trang hoặc bị hack, bạn đừng hoảng hốt. Hãy bình tĩnh làm theo các bước khôi phục dữ liệu nhanh chóng sau:
- Khôi phục mã nguồn: Truy cập File Manager, đổi tên thư mục
public_htmlcũ thànhpublic_html_old(để dự phòng). Tạo một thư mụcpublic_htmlmới tinh. Upload file.tar.gzcủa bạn lên đó và nhấn chuột phải chọn Extract (Giải nén). - Khôi phục Database: Truy cập phpMyAdmin từ giao diện cPanel. Chọn đúng Database của website ở cột bên trái. Nhấn vào tab Import (Nhập), chọn file
.sql(hoặc.sql.gz) đã backup từ máy tính và nhấn Go (Thực hiện). - Kết nối lại: Kiểm tra file cấu hình (ví dụ
wp-config.phpđối với WordPress) để đảm bảo thông tin user và mật khẩu kết nối database vẫn chính xác.
Chỉ với 3 bước trên, website của bạn sẽ hoạt động trở lại bình thường như thời điểm trước khi xảy ra sự cố.
Một vài sai lầm “chết người” cần tránh khi quản lý file backup
Không kiểm tra lại file backup xem có hoạt động không, lưu mật khẩu database dạng text không mã hóa ở nơi dễ thấy, và để file backup public trên internet là những sai lầm cực kỳ nguy hiểm.
Rất nhiều bạn sau khi cấu hình tự động hóa sao lưu thì bỏ mặc luôn. Đến khi cần lấy ra dùng thì file nén bị lỗi không giải nén được. Hãy tạo thói quen mỗi tháng tải file về và giải nén thử một lần trên localhost.
Ngoài ra, tuyệt đối không lưu file backup trong thư mục public_html vì bất kỳ ai có link trực tiếp hoặc dùng tool quét thư mục cũng có thể tải trộm toàn bộ mã nguồn và dữ liệu khách hàng của bạn. Hãy luôn lưu ở thư mục gốc (Home Directory) hoặc đẩy lên lưu trữ đám mây nhé.
Việc backup website từ cPanel tự động không phải là kỹ thuật gì cao siêu, nó là “bảo hiểm” rẻ và hiệu quả nhất cho tài sản số của bạn. Đừng để đến lúc “mất bò mới lo làm chuồng”. Hãy dành ra một ly cafe và 15 phút thiết lập ngay hôm nay để không bao giờ phải đối mặt với rủi ro mất dữ liệu oan uổng. An toàn cho website cũng chính là sự an tâm cho bạn.
Nếu bạn gặp bất kỳ khó khăn nào trong quá trình cài đặt, đừng ngại để lại bình luận bên dưới, mình sẽ hỗ trợ ngay khi có thể nhé!
Lưu ý: Thông tin trong bài viết này chỉ mang tính chất tham khảo. Để có lời khuyên tốt nhất, vui lòng liên hệ trực tiếp với chúng tôi để được tư vấn cụ thể dựa trên nhu cầu thực tế của bạn.