Linux服务器数据迁移需按目标类型选择方案:云服务器间优先用平台镜像功能;物理机/VPS间用rsync同步并备份服务配置;仅迁应用数据则用tar+mysqldump;须排除/proc等运行时目录,保留ACL/SELinux权限;数据库推荐逻辑导出,迁移后须验证网络、服务、端口、业务及日志。

Linux 服务器数据迁移不是“一键复制”就能搞定的事,核心在于分清迁移目标——是整机克隆、服务平移,还是仅搬数据?方案选错,轻则服务起不来,重则数据不一致。下面按实际场景拆解关键做法。
先判断迁移类型再定工具
不同目标对应不同技术路径:
- 云服务器之间迁移:优先用平台自带镜像功能(如阿里云自定义镜像、腾讯云CVM镜像复制)。制作系统盘+数据盘快照→跨地域/可用区复制→用镜像新建实例。全程平台托管,零手动配置,最稳最快。
-
物理机/虚拟机→新物理机或无镜像功能的VPS:用
rsync全盘同步(可边运行边传),配合rpm -qa导出软件包列表、firewall-cmd --list-all备份防火墙规则、systemctl list-unit-files --state=enabled记录开机自启服务。 -
只迁网站或应用数据:宝塔面板用户直接用其“文件压缩+数据库备份”功能;命令行用户用
tar -czf打包网站目录,mysqldump导出数据库,再scp或sftp上传到新服务器。
同步时必须排除的目录和必须保留的元数据
用 rsync 或 tar 时,以下目录不能同步,否则新系统启动会失败:
Linux 安全审计工具,检查 SSH 配置、开放/监听端口、防火墙规则(ufw/iptables/nftables)、失败登录尝试、sudoers 权限...
-
绝对排除:
/proc、/sys、/dev、/run、/tmp—— 它们是运行时虚拟文件系统,每次启动自动生成。 -
谨慎处理:
/boot和/etc/fstab—— 同步后需根据新磁盘 UUID 重生成 fstab,GRUB 引导也要在新服务器上重装,否则无法开机。 -
必须保留权限:用
rsync -aHAX或tar -cpzf,确保软硬链接、ACL、SELinux 上下文(如有)不丢。别用rclone做系统级迁移,它不保留 UID/GID 和扩展属性。
数据库和服务配置不能靠“复制粘贴”
数据库迁移不是拷文件那么简单:
- MySQL/PostgreSQL 推荐逻辑导出:
mysqldump --single-transaction --routines --triggers,避免锁表,保证一致性;导入前确认新库字符集、SQL mode 与原库一致。 - 若用物理迁移(如直接 rsync MySQL 数据目录),必须停库,且确保新旧 MySQL 版本兼容,否则可能无法启动。
- 服务配置要逐项核对:
/etc/nginx/conf.d/下的站点配置、SSL 证书路径、PHP-FPM 池配置、定时任务crontab -l输出——这些容易漏改 IP、域名或路径,导致 502 或连接拒绝。
迁移后验证不能只看“能连上”
重启新服务器后,至少检查这五项:
- 网络:IP、网关、DNS 是否生效,
ip addr show和ping baidu.com都通; - 服务状态:
systemctl list-units --type=service --state=failed确保无失败单元; - 端口监听:
ss -tlnp | grep ':80\|:443\|:3306'看关键端口是否被正确进程监听; - 业务逻辑:访问网站首页、登录后台、提交表单、查数据库记录——真跑一遍流程;
- 日志异常:
tail -f /var/log/messages和对应服务日志(如/www/wwwlogs/xxx.log),看有无报错或告警。

















