这是 Mac 到 Mac(均使用 10.12 Sierra),我想将大量音频和视频文件从本地 Mac 同步到服务器(另一台 Mac)。每个视频文件可能为 1 GB 或更多,但尽管音频文件较小,但仍可以查看进度,因为它们需要一些时间,即使在千兆网络上也是如此。
我的问题涉及 rsync 的整个/部分/增量操作。据我所知,即使使用 ssh 作为传输方式,它也应该只复制文件的更改,但只要对文件进行少量更改(例如 MP3 音频文件中的 ID3 标签),整个文件就会重新发送。首先,它报告正在删除大量文件,然后再次发送相同的文件,看起来是整个文件。我可以看到进度百分比,它似乎花费的时间与复制该大小的文件通常需要通过网络所需的时间一样长。使用巧妙的算法仅传输增量似乎没有任何好处。
在什么情况下 rsync 会先删除一个文件,然后通过网络再次发送整个文件?
編輯
--inplace 我认为速度较慢,而且在发生中断的情况下数据安全性肯定较低。此外,-z 不太可能在音频和/或视频内容的情况下提供帮助。除了排除等之外,如果我只是在测试,我只使用 -a 选项,与 nv 和 --progress 一起使用。问题是,在这种情况下,一个 1GB 的文件对内部元数据标签进行了微小更改,同步时间不应该很长,因为只需要发送非常少量的数据,但我正在观察 % 进度,它至少需要与复制整个文件一样长的时间。我只能假设它再次发送了整个文件,尤其是当它报告一开始就删除了该文件时。如果它真的先删除它,那么它绝对不可能只发送增量。它真的先删除那些文件吗?还是只是这么说,实际上只是意味着文件需要更新?
答案1
如果没有看到 rsync 命令行,很难确定发生了什么,但请检查man rsync
并查看 --verbose、--inplace、--partial 和 --progress 选项。
一般来说,我使用类似的命令rsync -e ssh -avzP --inplace <src> <dst>
通过 ssh 就地传输文件,使用存档模式 (a)、详细消息 (v)、压缩 (z) 和部分+进度支持 (P)。
-Rich Alloway(RogueWave)