原文连接:https://blog.ibytebox.com/archives/PfYMANPX
最近在做服务器迁移,要把老机器上 3TB 的数据搬到新机器去。两台机器都在外网,虽然都有公网 IP,但网络环境也就是普通的商用带宽,并不算太稳。
一开始随手敲了个 scp,跑了一会发现速度慢得离谱,而且这玩意儿不支持断点续传,万一传了 2TB 网络抖一下,心态直接崩了。换 rsync 稍微好点,但它是单线程的,死活跑不满带宽。
最后还是上了 Rclone。这东西以前只拿来挂载 Google Drive 等云盘,后来发现它其实才是服务器对传的神器。支持多线程并发、断点续传、还自带校验。
记录一下操作过程,给有同样需求的兄弟避个坑。
- 安装 Rclone(千万别用 apt)
Debian 官方源里的 rclone 版本比较老。为了性能和 Bug 修复,建议一定要装最新版。
直接用官方的一键脚本,简单粗暴:
Bash
curl https://rclone.org/install.sh | bash
装完后,输入 rclone version 确认一下,只要不是几年前的版本就行。
注意:这步只需要在**发送端(源服务器)**操作。接收端只要开了 SSH 就行,不需要装任何东西,Rclone 会走 SFTP 协议直接连过去。
- 配置连接(SFTP)
Rclone 需要先配置一个“Remote(远程端)”,连另一台服务器。
在终端输入:
rclone config
接下来的交互界面有点长,按我下面说的填就行:
No remotes found, make a new one?
输入 n (新建),回车。
name>
给服务器起个名字,比如 backup_server,回车。
Storage>
这里会列出几十种网盘。直接输入 sftp,回车。
它会自动选中 "SSH/SFTP Connection"。
host>
填接收端的 公网 IP。
user>
填用户名,一般是 root。
port>
直接回车(默认 22)。
pass>
选 y,然后输入接收端的 SSH 密码。
(如果你两台机器做了 SSH Key 免密,这里就不用输密码,直接指定 key_file 路径就行,没做的话输密码最省事)。
后面的一路回车
遇到让你选 "Edit advanced config?" 直接回车(默认 No)。
最后看到配置概览,输入 y 确认,然后 q 退出。
配置完,测试一下能不能通:
意思是列出 backup_server 根目录下的文件夹
rclone lsd backup_server:/
如果能列出目录,说明通了。
- 关键:开始传输
传输 3TB 数据,哪怕跑满带宽也得传好久。千万不要直接在 SSH 窗口里跑,因为电脑休眠或者网络断开,进程就杀掉了。
一定要用 screen 或 tmux!
第一步:开个后台窗口
如果没装 screen,先 apt install screen
screen -S moving_files
第二步:执行传输命令(核心参数)
这是我实测速度最快、最稳的命令组合:
rclone copy /本地/数据路径 backup_server:/远程/存储路径 \
-P \
--transfers=16 \
--multi-thread-streams=4
参数详解(为什么要这么写):
copy:复制模式。比 sync 安全,sync 会删除目标端多余的文件,copy 只管把文件拷过去。
-P:显示实时进度条,看着心里有底。
--transfers=16:这是速度快的秘诀。默认 rclone 只同时传 4 个文件,根本跑不满公网带宽。改成 16 甚至 32,让它像蚂蚁搬家一样并发传输,直接把带宽榨干。
--multi-thread-streams=4:如果你有单个特别大的文件(比如几十 GB 的压缩包),这个参数会让 rclone 开启 4 个线程分块下载这一个文件。
- 传输完了怎么验证?
传完 3TB,心里总归有点慌,万一丢了几个字节怎么办?
Rclone 自带校验功能。虽然耗时(需要两端读取文件计算 Hash),但为了数据安全,建议跑一下:
Bash
--size-only 表示只对比文件大小和修改时间(速度快,秒出结果)
如果极其严格,去掉 --size-only,它会对比文件内容(非常慢,但绝对可靠)
rclone check /本地/数据路径 backup_server:/远程/存储路径 --size-only
只要提示 0 differences found,就可以放心了。
总结
对于内网传输,tar + nc 是王者;但对于公网环境,Rclone 的多线程并发和断点续传能力是目前最好用的,没有之一。
搞定,收工。
挺好的,适合批量传输文件
好东西
@seamee #1 emby影视库搬库太累了😂,试了好多个,rclone确实挺好的
很实用,
我就是mp+rclone 搬运到到onedrive,非常稳定
我习惯用syncthing
@藏锋 #6 一次性搬运又不是长期同步,用不上这个
感觉不错
用restic打包
收藏了,万一那天有用