Các vấn đề đã biết
-
Mailing list Mailman sẽ không được chuyển sang mailing list majordomo.
-
Lưu ý bảo mật: Hãy chắc chắn rằng chính bạn là người tạo ra file backup
cpmove-user.tar.gz
, bởi vì hiện tại hệ thống hoàn toàn tin tưởng vào nội dung bên trong file này. Do đó, chỉ có thể truy cập ở cấp độ admin (điều này có thể thay đổi sau). -
Định dạng tên cơ sở dữ liệu và người dùng MySQL trong DirectAdmin luôn là
username_database
vàusername_user
. cPanel cũng theo định dạng này, tuy nhiên do giới hạn độ dài tên người dùng/DB, phầnusername_
trong cPanel có thể bị rút ngắn. Trong khi đó, DirectAdmin luôn giữ nguyênmyusername_
, và nếu không nhất quán sẽ gây ra xung đột như việc:- Người dùng
myuserna
sở hữumyuserna_db1
-
Người dùng
myusername
lại sở hữumyserna_db2
Để tránh điều này, script sẽ chuyển đổi tên người dùng về
username
đầy đủ. Một số trường hợp hiếm, bạn cần sửa lại tên DB/username trong filewp-config.php
hoặc các file cấu hình CMS khác. Ví dụ output:WARNING! us_wordpress cannot be owned by user, renaming database user to user_wordpress
- Người dùng
Các lưu ý quan trọng khác
-
Nên giữ lại tất cả các file
cpmove-user.tar.gz
sau khi restore, đề phòng sự cố xảy ra, bạn vẫn có thể khôi phục dữ liệu. -
Như bất kỳ phần mềm nào khác, sẽ có thể tồn tại lỗi. Hãy báo cáo ngay nếu bạn phát hiện vấn đề.
-
DirectAdmin có bộ tính năng khác với cPanel:
-
DirectAdmin hỗ trợ nginx/openlitespeed, MySQL 8, rspamd
-
KHÔNG hỗ trợ PostgreSQL hoặc Ruby – cần chuyển thủ công nếu đang dùng các công nghệ này.
-
-
Giới hạn độ dài username:
-
Mặc định là 16 ký tự cho MySQL user và 10 ký tự cho system user.
-
Có thể tăng giới hạn trong file cấu hình:
ls /var/cpanel/users | awk '{print length, $0}' | sort -nr | head -n1
-
Kiểm tra độ dài username trong cPanel:
/usr/local/DirectAdmin/DirectAdmin set max_username_length 16 service DirectAdmin restart
-
-
Khuyến nghị nâng cấp MySQL/MariaDB lên 5.7+ hoặc MariaDB 10.x để đảm bảo tương thích tối đa.
-
Test trước với 1 account, ưu tiên account có tên dài nhất để đảm bảo không gặp lỗi DNS, giới hạn độ dài tên,…
-
Nếu bạn có file
user.tar.gz
thay vìcpmove-user.tar.gz
, bạn cần đổi tên:for i in `ls *.tar.gz | grep '^[A-Za-z0-9]*.tar.gz'`; do { mv -vf ${i} cpmove-${i}; }; done
-
Tương tự nếu có file dạng
backup-...._user.tar.gz
, đổi tên như sau:for i in `ls backup-[0-9]*.*.tar.gz`; do { USERNAME=`echo $i | cut -d_ -f3 | cut -d'.' -f1`; mv -v $i cpmove-${USERNAME}.tar.gz; }; done
-
Không thấy user trong danh sách “Move users between resellers”? → cần rebuild lại tất cả các file
users.list
của reseller:cd /home/admin/all_backups for i in `ls user*.tar.gz`; do { RESELLER=`echo $i | cut -d. -f2`; USER=`echo $i | cut -d'.' -f3`; /usr/local/DirectAdmin/scripts/move_user_to_reseller.sh $USER admin $RESELLER; }; done echo "action=cache&value=showallusers" >> /usr/local/DirectAdmin/data/task.queue /usr/local/DirectAdmin/dataskq d
Chuyển toàn bộ tài khoản từ cPanel sang DirectAdmin
Trên máy chủ cPanel:
-
Tạo backup toàn bộ tài khoản cPanel và lưu vào
/home/all_backups
:mkdir -p /home/all_backups for user in `ls /var/cpanel/users/`; do { /scripts/pkgacct ${user} /home/all_backups; }; done
-
Chuyển toàn bộ file từ cPanel sang DirectAdmin:
rsync -avt --delete /home/all_backups/ root@[B]your_DirectAdmin_server.com[/B]:/home/admin/all_backups/
Hoàn tất phần cPanel – giờ chuyển sang DirectAdmin.
Trên máy chủ DirectAdmin:
-
Đảm bảo file backup trong
/home/admin/all_backups
thuộc sở hữu củaadmin
:chown -R admin. /home/admin/all_backups
-
Cuối cùng thì chúng ta đã có đầy đủ các bản sao lưu từ cPanel dưới định dạng phù hợp với DirectAdmin tại thư mục
/home/admin/all_backups
😃. Bây giờ, bạn chỉ cần truy cập vào DirectAdmin, mở mục “Admin Backup/Transfer”, sau đó kiểm tra phần “Backup/Restore Settings” (các thiết lập mặc định thường đã ổn), và tiến hành khôi phục toàn bộ bản sao lưu từ thư mục/home/admin/all_backups
.Thế là xong!
Nếu bạn có đủ dung lượng lưu trữ, nên giữ nguyên thư mục
/home/admin/all_backups
trên máy chủ DirectAdmin trong vài tuần hoặc vài tháng. Phòng khi có dữ liệu nào đó bị thiếu sót trong quá trình chuyển đổi – bạn vẫn luôn có thể khôi phục lại từ bản backup này.Trường hợp máy chủ cPanel không đủ dung lượng để chứa toàn bộ bản sao lưu?
Không sao cả! Bạn có thể chuyển từng tài khoản riêng lẻ trực tiếp sang thư mục home của máy chủ mới (DirectAdmin). Phương pháp nhanh chóng và tiện lợi nhất là sử dụng kết nối SSH không cần mật khẩu, bằng cách:
ssh-keygen
Sau khi chạy lệnh trên, bạn sẽ có file Public Key nằm tại
/root/.ssh/id_rsa.pub
.
Hãy sao chép toàn bộ nội dung của file này sang máy chủ DirectAdmin, cụ thể là vào file/root/.ssh/authorized_keys
. Nếu thư mục/root/.ssh
chưa tồn tại trên DA, hãy tạo mới.Việc này sẽ giúp máy chủ cPanel kết nối được với máy chủ DirectAdmin mà không cần nhập mật khẩu, từ đó tự động hóa quá trình chuyển dữ liệu dễ dàng hơn.
Thay vì thực hiện thủ công các bước 1) và 2) trên máy chủ cPanel, bạn có thể dùng đoạn script sau để tự động backup và chuyển từng tài khoản:
for user in `ls /var/cpanel/users/`; do { /scripts/pkgacct ${user} /home/all_backups; rsync -avt /home/all_backups/cpmove-${user}.tar.gz root@your_directadmin_server.com:/home/admin/all_backups/cpmove-${user}.tar.gz; rm -f /home/all_backups/cpmove-${user}.tar.gz ; }; done
Chuyển tài khoản riêng lẻ từ cPanel sang DirectAdmin
Trên máy chủ cPanel:
-
Backup tài khoản riêng
/home/user_backups
thay “username” bằng tên thật:/scripts/pkgacct username /home/user_backups;
-
Chuyển toàn bộ
/home/user_backups/
sang DirectAdmin:rsync -avt /home/user_backups/ root@your_DirectAdmin_server.com:/home/admin/converted_user_backup/
Trên máy chủ DirectAdmin:
-
Đảm bảo quyền sở hữu:
chown -R admin. /home/admin/converted_user_backup
-
Truy cập mục Admin Backup/Transfer, chọn đường dẫn
/home/admin/converted_user_backup
để restore.
Vậy là xong!