云主机文件打包怎么搬迁?

HCRM技术_小炮 云主机 2026-05-21 2 0

针对云主机文件打包搬迁,核心思路是先打包压缩,再传输,最后解压部署,根据文件大小、网络环境和云平台关系,可以选择不同的方案。

下面整理了一套最常用、最稳妥的操作流程和具体命令,适用于 Linux 云主机(Windows 类似,工具换为 WinRAR/7-Zip 和 FTP/RDP)。

第一步:在源云主机上打包压缩

登录到源云主机,使用tar 命令打包(通常在/tmp/home 目录下操作,避免占用业务磁盘空间):

1. 进入要打包的文件所在目录
cd /var/www/html
2. 打包并压缩(常用gzip,速度与压缩比均衡)
打包当前目录所有文件为 site-backup.tar.gz
tar -czf /tmp/site-backup.tar.gz .
如果只想打包指定文件夹:
tar -czf /tmp/site-backup.tar.gz /var/www/html /etc/nginx/conf.d

-c: 创建归档

-z: 通过 gzip 压缩

-f: 指定归档文件名

. : 当前目录所有内容(包括隐藏文件)

可选:排除不需要的文件(如日志、缓存目录):

tar -czf /tmp/site-backup.tar.gz --exclude="*.log" --exclude="./cache" /var/www/html

第二步:传输文件(根据场景选择)

场景 A:同云服务商内网迁移(最快、最安全)

如果源和目标在同一云服务商的同一区域(如都在阿里云上海地域),使用内网 IP 直接传输,速度极快且免费。

在源主机上执行,将文件推送到目标主机
scp /tmp/site-backup.tar.gz root@<目标主机内网IP>:/tmp/

如果目标主机有固定的内网传输工具(如阿里云的 OSS 内网上传),可以通过内网传到 OSS,再从目标主机拉取。

场景 B:跨云或本地到云(推荐使用 rsync + 断点续传)

如果文件很大(>5GB),或者网络不稳定,用rsync 更可靠,支持断点续传。

在源主机上执行,将文件发送到目标主机
rsync -avzP --progress /tmp/site-backup.tar.gz root@<目标公网IP>:/tmp/

-P: 等同于--partial --progress,支持断点续传和显示进度

场景 C:通过对象存储(如 AWS S3、阿里云 OSS)中转

适合跨平台或需要长期保存的场景。

1、 在源主机上传:aws s3 cp /tmp/site-backup.tar.gz s3://my-bucket/

2、 在目标主机下载:aws s3 cp s3://my-bucket/site-backup.tar.gz /tmp/

场景 D:小型文件、没有命令行条件(Web 图形化)

如果文件不大(如几十 MB),且懒得装工具:

1、 在源主机启动临时 HTTP 服务器:python3 -m http.server 8000(在/tmp 目录下)

2、 在目标主机或本地浏览器访问http://<源公网IP>:8000/site-backup.tar.gz 下载

3、注意:记得关闭防火墙或仅在安全组放行,下载后立即停止服务。

第三步:在目标云主机上解压验证

登录到目标云主机,执行:

1. 进入目标部署目录
cd /var/www/html
2. 解压文件
tar -xzf /tmp/site-backup.tar.gz
3. 检查文件属性(特别是权限和所有者)
chown -R www-data:www-data /var/www/html
chmod -R 755 /var/www/html

权限修复经常被忽略,如果源主机和目标主机的www-data 用户 UID 不同,直接解压可能导致文件所有者错乱,推荐先解压,再用find 修正。

⚠️ 重要注意事项

1、大文件(>2GB):不要用scp(无断点续传),用rsync 或分割传输,分割命令:

    # 源主机分割成1GB的包
    split -b 1G /tmp/site-backup.tar.gz /tmp/part_
    # 传输后合并
    cat /tmp/part_* > /tmp/site-backup.tar.gz

2、数据完整性:传输后务必校验 MD5 或 SHA256:

    # 源主机计算
    md5sum /tmp/site-backup.tar.gz > /tmp/backup.md5
    # 目标主机校验
    md5sum -c /tmp/backup.md5

3、安全问题:如果传输公网,建议使用压缩包的密码保护或加密:

    # 打包时使用密码(依赖openssl)
    tar -czf - /var/www/html | openssl enc -aes-256-cbc -e -out /tmp/encrypted.tar.gz -k "YourPassword"
    # 解密
    openssl enc -aes-256-cbc -d -in /tmp/encrypted.tar.gz | tar -xzf

4、最佳实践:如果云平台提供自定义镜像快照功能(如 AWS AMI、阿里云镜像),直接制作镜像新建主机是最快、最彻底的方式,连系统和应用配置一起搬走,无需手动打包文件。

1、小文件(<1GB)tar + scp 最简单。

2、大文件(1GB-50GB)tar + rsync(断点续传)或上传到对象存储中转。

3、超大文件(>50GB):制作云平台自定义镜像,或使用服务器间的nc 直传(需专门配置)。

4、数据库文件:不要直接打包数据库的原始文件!请用mysqldumppg_dump 导出 SQL 再搬迁,否则可能因版本不兼容而无法恢复。

如果你能提供具体的云服务商(如阿里云、AWS)、文件大小和网络情况,我可以给出更精确的命令配置。

文章摘自:https://idc.huochengrm.cn/zj/25840.html

评论