
Khi nào cần restore từ file backup?
- Khách hàng xóa nhầm file/database, cần rollback.
- Site bị hack hoặc malware, cần restore phiên bản sạch.
- Migrate account từ server khác qua file
cpmove-username.tar.gz. - Restore sau sự cố disk failure hoặc nâng cấp server.
Yêu cầu file backup
cPanel chấp nhận các format sau:
cpmove-username.tar.gz– chuẩn pkgacct, restore được full account.backup-MM.DD.YYYY_HH-MM-SS_username.tar.gz– format từ Backup Manager built-in.username.tar.gz– format JetBackup hoặc backup tools tương đương.
File backup phải đặt ở một trong các thư mục sau (cPanel scan các path này):
/home
/home2
/home3
/root
/usr
/usr/home
/web
Đặt sai chỗ sẽ không tìm thấy. Khuyên dùng /home/ để đồng bộ.
Cách 1: Restore qua WHM (GUI)
Bước 1: Login WHM
Vào https://server.tld:2087, search Restore và chọn Restore a Full Backup/cpmove File.
Bước 2: Chọn method
Có 2 lựa chọn:
- Restore with Username: Nhập username, WHM tự tìm file
cpmove-username.tar.gztrong các path mặc định. - Restore with File: Browse trực tiếp đến file
.tar.gztrên server. Linh hoạt hơn.
Bước 3: Cấu hình restore options
- Restore Mail Configuration: Khuyên bật để giữ email cũ.
- Restore MySQL Data: Bắt buộc bật trừ khi muốn giữ DB hiện tại.
- Restore Subdomains/Add-on Domains: Bật.
- Give IP on Restore: Bật nếu cần dedicated IP.
Bước 4: Click Restore và theo dõi
WHM hiển thị log realtime. Có thể close browser – process tiếp tục chạy nền. Tail log:
tail -f /var/cpanel/logs/transfer_log//main_log.txt
Cách 2: Restore qua command line (restorepkg)
Nhanh hơn GUI và scriptable – phù hợp khi cần restore nhiều accounts.
Restore 1 account theo username
# Backup phải nằm ở /home/cpmove-username.tar.gz hoặc các path mặc định
cd /scripts
./restorepkg username
Restore từ file path cụ thể
/scripts/restorepkg /home/migrate/cpmove-tnduser.tar.gz
Restore với options
# Skip restore homedir (chỉ restore config + db)
/scripts/restorepkg --skiphomedir username
# Force overwrite nếu account đã tồn tại
/scripts/restorepkg --force username
# Skip subdomain conflict check
/scripts/restorepkg --skipsubdomain username
Restore nhiều accounts song song
cd /home/migrate
# Chạy 4 restore process song song
ls cpmove-*.tar.gz | xargs -n1 -P4 /scripts/restorepkg
Tip: -P4 phù hợp với server 4 vCPU. Tăng/giảm theo CPU thực tế. Đừng vượt quá CPU count nếu không sẽ thrash I/O.
Cách 3: Restore với pkgrestore (legacy)
Trên một số bản cPanel cũ hoặc khi restorepkg fail:
/scripts/pkgrestore /home/cpmove-username.tar.gz
Lệnh này không recommended cho cPanel 11.100+ – dùng restorepkg thay thế.
Restore chỉ một phần (partial restore)
Đôi khi không cần restore toàn bộ account, chỉ cần lấy lại 1 file/database/email. Cách làm:
Extract backup tarball ra thư mục tạm
mkdir -p /home/restore_tmp/username
cd /home/restore_tmp/username
tar -xzf /home/cpmove-username.tar.gz
Lấy file cần thiết
Cấu trúc bên trong cpmove-username.tar.gz:
cpmove-username/
├── homedir/ # /home/username/
├── mysql/ # database dumps (.sql)
├── homedir.tar # alt: tarball của /home (không dùng nếu thư mục homedir/ đã extract)
├── mma/ # mailman archives
├── mail/ # email mailboxes
├── cp/ # cPanel config (proftpdpasswd, etc.)
└── meta/ # metadata: version, package, ip, etc.
Copy file mong muốn vào account đích, đảm bảo chmod/chown đúng:
cp -a /home/restore_tmp/username/cpmove-username/homedir/public_html/wp-content/uploads/2025/11/file.jpg \
/home/username/public_html/wp-content/uploads/2025/11/
chown username:username /home/username/public_html/wp-content/uploads/2025/11/file.jpg
Restore database từ dump
cd /home/restore_tmp/username/cpmove-username/mysql
mysql username_dbname < username_dbname.sql
Pitfall và troubleshooting
- “Account already exists”: Dùng flag
--forcehoặc xóa account cũ trước (/scripts/killacct username). - “Insufficient disk space”: Free up
/hometrước khi restore. Backup tạm chiếm 2x dung lượng cuối cùng. - “PHP version not found”: Kiểm tra MultiPHP Manager, cài thêm version cần thiết qua EasyApache.
- Mail không nhận sau restore: Chạy
/scripts/fixmailperms usernamevà/scripts/buildeximconf. - Quota sai: Chạy
/scripts/fixquotassau khi restore xong tất cả accounts. - Restore bị treo: Kiểm tra
/var/cpanel/logs/transfer_log/tìm session đang stuck. Kill process bằngkill -9 PIDrồi chạy lại với--force.
Best practices
- Test restore trên staging server trước khi áp dụng production.
- Snapshot disk trước restore để có thể rollback nếu sai.
- Restore vào off-peak hours (3-5h sáng) để giảm I/O contention.
- Sau restore, chạy malware scan:
/usr/local/cpanel/3rdparty/bin/clamscan -r /home/username/. - Verify website lên thật bằng cách clear cache CDN và test cả HTTP/HTTPS.
TND.vn hỗ trợ restore
Tất cả gói shared hosting và VPS managed của TND.vn được backup tự động JetBackup hàng ngày, lưu offsite 30 ngày. Khách hàng cần restore mở ticket – team kỹ thuật xử lý trong 1-4h tùy độ phức tạp. Khách dùng VPS unmanaged tự backup nên chuẩn bị quy trình tương tự bài này.
Kết
Với account đơn lẻ, dùng WHM GUI là nhanh và an toàn. Với batch restore (sau migrate hoặc DR scenario), CLI restorepkg với xargs -P4 tiết kiệm hàng giờ. Quan trọng nhất: luôn test restore trên staging trước, đặt file backup đúng path, và verify integrity sau khi xong.
Tham khảo: cPanel – Restore an account from a backup file, cPanel WHM docs – Restore Full Backup.
