我想使用rsync移动一些文件,但是在删除源文件之前,文件在目的地是完整的,这一点至关重要。 问题是,我找不到任何信息告诉我rsync如何确定一个文件已被正确传输:我将需要它进行适当的校验和。 任何人都知道如何rsync呢?
您需要通过--checksum来确保在源和目标上具有相同大小和时间的文件不会被跳过。 然后,按照Wikipedia :
收件人将其文件的副本分成固定大小的非重叠块,并为每个块计算两个校验和:MD4哈希和较弱的“滚动校验和”。 (使用rsync版本3.0.0发布的协议版本30现在使用MD5散列而不是MD4 [14]),它将这些校验和发送给发件人。
关于--checksum的部分说rsync总是validation收到的文件ckecksum认为它完成(即使--checksum不使用):
请注意,rsync总是通过检查传输文件时生成的整个文件校验和来validation每个传输的文件在接收端是否被正确重build,但是自动传输后validation与该选项的before-传送“这个文件是否需要更新?” 检查。