Linux服务器迁移数据保姆级教程:从备份到恢复全流

Linux服务器迁移数据保姆级教程:从备份到恢复全流 配图

一、迁移前必须做的准备工作


无论你是从旧服务器搬到新服务器,还是跨机房迁移,Linux服务器迁移数据之前有两件事必须先确认:旧服务器上的数据有哪些、新服务器的环境是否就绪。


1. 数据清单梳理



  • 网站程序文件(一般放在 /www/wwwroot/var/www/html

  • 数据库文件(MySQL/MariaDB 的 data 目录或直接导出SQL)

  • 配置文件(Nginx、Apache、PHP等,通常在 /etc/nginx/etc/httpd

  • 证书、密钥、.env 等敏感文件


2. 新服务器环境检查



  • 确保新服务器已安装相同或兼容的操作系统版本(如 CentOS 7 → CentOS 7 / Rocky Linux 8)

  • 安装必要的软件:apt update && apt install -y rsync sshyum install -y rsync openssh-clients

  • 宝塔用户:在新服务器上安装宝塔面板,并创建与旧服务器一致的网站和数据库空壳(先不传数据)


二、核心数据迁移步骤


推荐用 rsync 配合 SSH 密钥登录,安全且支持断点续传。


1. 生成SSH密钥并互信(免密登录)


在旧服务器上执行:


ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa -N ""
ssh-copy-id root@新服务器IP

测试能否免密登录:ssh root@新服务器IP,不需要输入密码即成功。


2. 迁移网站程序文件


假设数据在 /www/wwwroot/your_site,新服务器目标路径相同:


rsync -avz --progress --delete /www/wwwroot/your_site/ root@新服务器IP:/www/wwwroot/your_site/

参数说明:-a 保留权限和时间戳,-v 显示详情,-z 压缩传输,--delete 同步删除多余文件。


3. 迁移MySQL数据库


宝塔面板操作路径:旧服务器宝塔 → 数据库 → 选择数据库 → 导出,将.sql文件下载到本地。

或用命令行导出:


mysqldump -u root -p your_database > /tmp/your_database.sql

将SQL文件传到新服务器:


rsync -avz /tmp/your_database.sql root@新服务器IP:/tmp/

在新服务器上导入:


mysql -u root -p your_database < /tmp/your_database.sql

注意:如果数据库名、用户不同,需要提前创建好对应库和用户。


4. 迁移配置文件


常用配置文件路径:



  • Nginx:/etc/nginx/conf.d//www/server/nginx/conf/(宝塔)

  • PHP:/etc/php.ini/www/server/php/版本/etc/php.ini

  • SSL证书:/etc/ssl//www/server/panel/vhost/ssl/


直接用rsync同步到新服务器对应位置,注意路径差异。


三、高频问题与避坑指南


1. 传输中断怎么办?


rsync支持断点续传,重新执行一次即可,加上 --partial 保留已传部分。


2. 数据库字符集乱码


导出时指定字符集:mysqldump --default-character-set=utf8mb4 -u root -p your_database > dump.sql

导入前检查新服务器数据库字符集是否为 utf8mb4


3. 无法SSH连接新服务器


检查新服务器防火墙:


ufw allow 22   # Ubuntu
firewall-cmd --add-service=ssh --permanent # CentOS
firewall-cmd --reload

如果使用云服务商,还需在安全组放行22端口。


4. 网站访问权限报错401或403


文件权限不一致:迁移后重置所有者:


chown -R www:www /www/wwwroot/your_site   # 以宝塔为例
find /www/wwwroot/your_site -type d -exec chmod 755 {} \;
find /www/wwwroot/your_site -type f -exec chmod 644 {} \;

四、迁移后的效果验证


1. 文件完整性检查


在旧服务器和新服务器上分别运行:


ls -lh /www/wwwroot/your_site | wc -l
du -sh /www/wwwroot/your_site

对比文件数量和总大小,基本一致即可。


2. 数据库数据检查


登录新服务器数据库,查看表数量:


SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = 'your_database';

与旧服务器对比。


3. 网站访问测试



  • 用浏览器访问新服务器IP或已解析的域名

  • 使用 curl -I http://新服务器IP 查看HTTP状态码是否200

  • 测试登录、查询等动态功能是否正常


4. 日志排查


查看新服务器错误日志:


tail -f /var/log/nginx/error.log   # 或宝塔面板的日志路径

如果出现异常,根据报错回看配置或权限。


五、最后的叮嘱


Linux服务器迁移数据不是一次性的复制粘贴,每一步都要做验证。

建议先迁移一个测试站点练手,再处理正式业务。

宝塔用户可以利用宝塔自带的“一键迁移”插件(限同版本环境),但手动迁移能让你更清楚每个文件的作用。

遇到异常别慌,优先检查权限、路径和防火墙。

完成迁移后不要立刻删除旧服务器数据,至少保留一周作为回退方案。

分享到:
上一篇
WP缓存插件对比Redis:WordPress缓存插件对比R
下一篇
Docker容器日志管理:查看、清理与配置完整指南
1
系统公告

泽御云五一特惠活动🔥

泽御云持证合规运营,资质齐全可查,长久稳定! 五一限时多重福利同步开启: ✅ 香港 2 核 2G 云服务器超值拼团,低价入手团长免费 ✅ 4 核 4G 多机房年付拼团,性价比拉满 ✅ 内蒙古新区限时 7 折(zeyuyunnmg)特惠,专属优惠码锁价续费 ✅ 全站通用 75 折优惠,老用户充值享专属赠金 官方站点:zeyuyun.com 合规资质齐全|售后有保障|活动限时错过不再有
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意