其他分享
首页 > 其他分享> > 使用rsync向服务器迁移大文件

使用rsync向服务器迁移大文件

作者:互联网

场景

本人将12G本地单文件(12G大小h5文件数据集)向Linux服务器进行大文件上传时传输失败。最初使用 scp 命令或 rsync 直接对大文件进行传输,会出现网络断开或服务器端管道破裂情况,而且一次性无法传输的话也会耗费很多时间。

步骤

为了解决此问题,可分为以下步骤进行操作:

# 打包压缩大文件
zip -r archive.zip ./bigfile

# 可选:将压缩包拆分成1G文件
# -b后输入子节 若要拆分为1G文件块 1G=1073741820 byte
split -b 1073741820 archive.zip archive_split

# 此时文件会分为很多带有字母后缀的archive_split{a, b..}之类的文件 对其进行rsync传输

# 在服务器端对传输来的文件块进行合并
cat archive_split* > new_archive.zip

rsync传输

# 传输文件
# -P,----partial     断点续传(保留那些因故没有完全传输的文件,以便加快随后的再次传输)
# -e                 以ssh方式进行数据传输, ssh -p2222 指定连接2222端口
# --progress         显示传输进度
# --bwlimit            限速, 字节/秒
# -r,--recursive     对子目录以递归模式处理
# -c, --checksum     打开校验开关,强制对文件传输进行校验。
# --delete             删除那些DST中SRC没有的文件。
# -z, --compress     对备份的文件在传输时进行压缩处理。
# --exclude=PATTERN 指定排除不需要传输的文件模式。
# --include=PATTERN 指定不排除而需要传输的文件模式。
# -v, --verbose 详细模式输出。
# -q, --quiet 精简输出模式。
# -a, --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD

rsync -P -e "ssh -p2222" --progress --compress ./archive_split* root@ip:/xxx/xxx/

解释一下上面执行命令的参数:

标签:文件,rsync,--,传输,split,服务器,迁移,archive
来源: https://www.cnblogs.com/S1mpleBug/p/16685787.html