我遇到了一个示例对,其中有原始版本和“翻转”版本:
原来的
rsync -aHAXxv --numeric-ids --delete --progress -e "ssh -T -c arcfour -o Compression=no -x" user@<source>:<source_dir> <dest_dir>
“翻动”
rsync -aHAXxv --numeric-ids --delete --progress -e "ssh -T -c arcfour -o Compression=no -x" [source_dir] [dest_host:/dest_dir]
这例子直到最后的引号为止似乎都是相同的。
标记为“翻转”的第二个示例是什么?它在功能上与“原始”有何不同?这两个命令在功能上等效吗?
答案1
原作者写得很草率,然后你就省略了他写的部分内容。
他写了:
rsync ... user@<source>:<source_dir> <dest_dir>
rsync ... [source_dir] [dest_host:/dest_dir]
但最好这样写:
rsync ... user@<source_host>:<source_dir> <dest_dir>
rsync ... <source_dir> user@<dest_host>:<dest_dir>
那么“翻转”就会更加明显。
基本上,第一种形式将文件从远程“源”主机“拉”到本地“目标”主机,第二种形式将文件从本地源“推送”到远程目标。他没有提到哪个更快。
我还认为他省略 -z 选项是错误的。我一直使用它并且获得了惊人的加速。
虽然我们很迂腐,但你也可以这样做:
rsync ... <source_dir> <dest_dir>
rsync ... user@<source_host>:<source_dir> user@<dest_host>:<dest_dir>
第一个只是本地副本;您可能希望在cp
、ditto
等没有您想要的选项的情况下使用它。第二种形式允许您在两个远程服务器之间复制文件。
最后,如果我们真的迂腐的是,-AX 参数仅适用于 Linux AFAICT。