Hướng dẫn restore cPanel account từ file backup trên server

Mục lục

Restore cPanel account từ backup file

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.gz trong các path mặc định.
  • Restore with File: Browse trực tiếp đến file .tar.gz trê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 --force hoặc xóa account cũ trước (/scripts/killacct username).
  • “Insufficient disk space”: Free up /home trướ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 username/scripts/buildeximconf.
  • Quota sai: Chạy /scripts/fixquotas sau 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ằng kill -9 PID rồi chạy lại với --force.

Best practices

  1. Test restore trên staging server trước khi áp dụng production.
  2. Snapshot disk trước restore để có thể rollback nếu sai.
  3. Restore vào off-peak hours (3-5h sáng) để giảm I/O contention.
  4. Sau restore, chạy malware scan: /usr/local/cpanel/3rdparty/bin/clamscan -r /home/username/.
  5. 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.

Chia sẻ bài viết