针对云主机文件打包搬迁,核心思路是先打包压缩,再传输,最后解压部署,根据文件大小、网络环境和云平台关系,可以选择不同的方案。
下面整理了一套最常用、最稳妥的操作流程和具体命令,适用于 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.gz2、数据完整性:传输后务必校验 MD5 或 SHA256:
# 源主机计算
md5sum /tmp/site-backup.tar.gz > /tmp/backup.md5
# 目标主机校验
md5sum -c /tmp/backup.md53、安全问题:如果传输公网,建议使用压缩包的密码保护或加密:
# 打包时使用密码(依赖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 -xzf4、最佳实践:如果云平台提供自定义镜像或快照功能(如 AWS AMI、阿里云镜像),直接制作镜像新建主机是最快、最彻底的方式,连系统和应用配置一起搬走,无需手动打包文件。
1、小文件(<1GB):tar + scp 最简单。
2、大文件(1GB-50GB):tar + rsync(断点续传)或上传到对象存储中转。
3、超大文件(>50GB):制作云平台自定义镜像,或使用服务器间的nc 直传(需专门配置)。
4、数据库文件:不要直接打包数据库的原始文件!请用mysqldump 或pg_dump 导出 SQL 再搬迁,否则可能因版本不兼容而无法恢复。
如果你能提供具体的云服务商(如阿里云、AWS)、文件大小和网络情况,我可以给出更精确的命令配置。
文章摘自:https://idc.huochengrm.cn/zj/25840.html
评论