Hướng dẫn chuyển toàn bộ cPanel accounts từ server cũ sang server mới

Mục lục

Chuyển cPanel accounts giữa các server

Tổng quan

Khi nâng cấp phần cứng, đổi datacenter hoặc gộp/tách server, việc di chuyển toàn bộ cPanel accounts là tác vụ rất phổ biến. Bài này tổng hợp 3 cách chính, từ dễ đến khó, để chuyển accounts giữa 2 server cPanel/WHM mà downtime tối thiểu.

  • Cách 1: WHM Transfer Tool – GUI, đơn giản, khuyên dùng cho dưới 100 accounts.
  • Cách 2: CLI /scripts/pkgacct + /scripts/restorepkg – linh hoạt, scriptable, phù hợp khi mạng giữa 2 server không thông trực tiếp.
  • Cách 3: Backup tích hợp (JetBackup, Acronis…) restore vào server mới – phù hợp nếu đang dùng provider cùng hạ tầng backup.

Chuẩn bị trước khi migrate

  1. Server mới phải cài cPanel/WHM cùng tier (LTS/STABLE/RELEASE/CURRENT) hoặc mới hơn – không được cũ hơn server nguồn.
  2. Đảm bảo server mới có đủ disk: tối thiểu 2x dung lượng /home server cũ (dùng cho file backup tạm + restore).
  3. Mở firewall port 22 (SSH) giữa 2 server theo cả 2 chiều, hoặc ít nhất từ server đích về server nguồn.
  4. Lấy root password hoặc SSH key của server nguồn – cần khi dùng Transfer Tool.
  5. Backup full /etc/cpanel, /var/cpanel server mới phòng case rollback.
  6. Note lại danh sách IP để tránh conflict – đặc biệt nếu chuyển sang IP mới sẽ cần update DNS.

Cách 1: WHM Transfer Tool (GUI)

Bước 1: Login WHM server đích

Vào WHM https://server-moi.tld:2087, search Transfer Tool, click vào.

Bước 2: Khai báo server nguồn

  • Remote Server Address: IP server cũ.
  • Authentication Method: Password hoặc SSH Key. Khuyên dùng SSH Key (an toàn hơn).
  • SSH Port: 22 (hoặc port custom nếu đã đổi).
  • Click Fetch Account List – WHM sẽ liệt kê toàn bộ user trên server cũ.

Bước 3: Chọn accounts và options

  • Chọn Select All để chuyển toàn bộ.
  • Tick Express Transfer – bật restore song song với download (nhanh hơn ~30%).
  • Tick Skip Server Setup nếu server đích đã setup sẵn.
  • Tick Replace IP Address in DNS – tự thay IP cũ bằng IP mới trong DNS zone.
  • Cấu hình Concurrent Transfers: 2-4 là sweet spot. Cao quá làm nghẽn I/O.

Bước 4: Start và theo dõi

Click Copy. WHM sẽ chạy nền – có thể đóng browser, process vẫn tiếp tục. Theo dõi qua View Transfers and Restores hoặc tail log:

tail -f /var/cpanel/logs/transfer_log//main_log.txt

Cách 2: CLI manual với pkgacct + restorepkg

Dùng khi 2 server không SSH trực tiếp được (ví dụ behind NAT khác nhau, hoặc bạn muốn truyền backup qua S3/rclone).

Bước 1: Trên server cũ – đóng gói từng account

# Đóng gói một account
/scripts/pkgacct username /home/migrate/

# Đóng gói tất cả accounts
mkdir -p /home/migrate
for user in $(ls /var/cpanel/users/); do
  /scripts/pkgacct $user /home/migrate/
done

Output: /home/migrate/cpmove-username.tar.gz cho mỗi user. Với account lớn dùng flag để bỏ qua phần không cần:

/scripts/pkgacct --skiphomedir username /home/migrate/   # bỏ /home (sync rsync riêng)
/scripts/pkgacct --skipemail username /home/migrate/      # bỏ email cũ
/scripts/pkgacct --skipacctdb username /home/migrate/     # bỏ database

Bước 2: Chuyển file sang server mới

Cách nhanh nhất – rsync trực tiếp:

rsync -avz --progress /home/migrate/ root@server-moi:/home/migrate/

Hoặc qua S3 trung gian (khi 2 server không SSH thẳng được):

rclone copy /home/migrate/ s3:my-migration-bucket/
# trên server mới
rclone copy s3:my-migration-bucket/ /home/migrate/

Bước 3: Trên server mới – restore

# Restore một account
/scripts/restorepkg /home/migrate/cpmove-username.tar.gz

# Restore tất cả - chạy song song 4 process
cd /home/migrate
ls cpmove-*.tar.gz | xargs -n1 -P4 /scripts/restorepkg

Bước 4: Sync /home delta (nếu dùng –skiphomedir)

# Trên server cũ
rsync -avz --delete /home/username/ root@server-moi:/home/username/
chown -R username:username /home/username/

Switchover: chuyển traffic về server mới

  1. Giảm TTL DNS xuống 300s (5 phút) – làm 24-48h trước ngày switch.
  2. Thực hiện migrate khi traffic thấp (3-5h sáng theo timezone chính).
  3. Sau khi restore xong, chạy rsync delta lần cuối:
    rsync -avz --delete /home/ root@server-moi:/home/
  4. Stop website server cũ: /scripts/restartsrv_httpd --stop để tránh ghi mới.
  5. Update DNS A record về IP server mới qua Cloudflare/registrar.
  6. Theo dõi traffic 30 phút – kiểm tra cả site có lên không.
  7. Sau 48-72h khi DNS đã propagate hoàn toàn, tắt server cũ.

Pitfall thường gặp

  • Quota mismatch: Server đích phải bật quota tương đương. Chạy /scripts/fixquotas sau restore.
  • PHP version khác nhau: Sau restore, kiểm tra MultiPHP Manager – assign đúng version cho từng domain.
  • Mail không nhận: Xác nhận DNS MX record và /etc/mailips đã cập nhật. Kiểm tra /scripts/buildeximconf chạy thành công.
  • SSL bị mất: AutoSSL sẽ tự cấp lại sau khi DNS trỏ về IP mới. Hoặc copy /var/cpanel/ssl/ nếu cần SSL custom.
  • WordPress site lỗi 500: Thường do PHP version chênh hoặc .htaccess permissions. Chmod 644 và kiểm tra error log.

TND.vn hỗ trợ migrate

Khách hàng đăng ký VPS hoặc shared hosting tại TND.vn được hỗ trợ migrate miễn phí từ provider khác sang. Chỉ cần cung cấp thông tin SSH/cPanel root server cũ, team kỹ thuật xử lý trong vòng 24h. Liên hệ qua ticket trong khu vực khách hàng.

Kết

Với dưới 50 accounts và hai server có thể SSH thông nhau, dùng WHM Transfer Tool là nhanh nhất. Trên 100 accounts hoặc cần custom flow, scripting pkgacct/restorepkg sẽ kiểm soát tốt hơn. Quan trọng nhất: giảm TTL DNS trước migrationchạy rsync delta ngay trước khi switch để hạn chế mất dữ liệu inflight.

Tham khảo: cPanel – How to move all cPanel accounts, HostDime Transfer Tool Guide.

Chia sẻ bài viết