我们使用 rsync 来备份服务器。
不幸的是,某些服务器的网络速度很慢。
rsync 最多需要五分钟才能检测到大型目录中没有任何变化。这些巨大的目录树包含很多小文件(大约 80k 个文件)。
我猜 rsync 客户端会为每个 80k 文件发送数据。
由于网络很慢,我想避免发送有关每个文件的 80k 次信息。
有没有办法告诉 rsync 对子目录树进行哈希和?
这样 rsync 客户端将只为巨大的目录树发送几个字节。
更新
到目前为止,我的策略是使用rsync
. 但是如果不同的工具更适合这里,我可以切换。两者(服务器和客户端)都在我的控制之下。
更新2
一棵目录树中有 80k 个文件。每个单个目录不超过 2k 个文件或子目录
更新3
有关网络缓慢的详细信息:
time ssh einswp 'cd attachments/200 && ls -lLR' >/tmp/list
real 0m2.645s
Run Code Online (Sandbox Code Playgroud)
tmp/list 文件大小:2MByte
time scp einswp:/tmp/list tmp/
real 0m2.821s
Run Code Online (Sandbox Code Playgroud)
结论:scp 速度一样(不出意外)
time scp einswp:tmp/100MB tmp/
real 1m24.049s
Run Code Online (Sandbox Code Playgroud)
速度:1.2MB/s