我已经使用了rsync
一段时间了,一直表现都很好。然而,尝试将rsync
我的 macOS(源、APFS 文件系统)与我的 Synology NAS(目标、btrfs 文件系统)一起使用似乎总是会带来我在rsync
.
我的一些“挑战”是命名法在(特别是)文档中使用rsync
; IE man rsync
。我希望对这个问题找到一些澄清;具体如下:
rsync
是“单向”同步;( )man rsync
描述如下:-i
--itemize-changes
[output is cryptic string] that is 11 letters long. The general format is
YXcstpoguax, where Y is replaced by the type of update being done ...
A < means that a file is being transferred to the remote host (sent)
A > means that a file is being transferred to the local host (received)
当使用以下rsync
命令时:
# Version:
rsync --version
rsync version 3.2.7 protocol version 31
# The command (simplified)
rsync -rlAtgoDiv /Users/seamus/Desktop/ /Volumes/backups/Desktop
我得到以下输出:
>f..t....... BooksBlogsEtc/pix/Capucine02.jpg
这就是我失去情节的地方。说,但>
将此"file being transferred to local host (received)"
声明视为面值,它表示文件正在传输到我的 Mac 和从NAS - 它正在已收到。哇哦,我有合并的source
与sent
and (在较小程度上)的术语local host
。但这似乎不是正在发生的事情 - 上面示例中的文件正在发送从来源/Mac到目的地/NAS。
有人可以解释一下这些吗明显的对我来说有差异吗?
答案1
Rsync运行在三不同的模式。
- 从远程复制到本地(拉取)
- 从本地复制到远程(推送)
- 从本地复制到本地(本地)
“发送”和“收到”在前两种情况下具有明确的含义,而在第三种情况下则没有那么明确。
当您使用本地到本地副本时,它将始终显示>
传输符号。
虽然您/Volumes/backup/Desktop
可能有 NAS 支持,但rsync
您并不知道这一点。它不使用任何定义远程端的远程协议(远程 shell 或 rsync 守护进程)。就程序而言,这些只是本地文件系统。网络部分不是由 完成的rsync
,而是由您的操作系统完成的。因此,它将始终显示>
。
如果您的 NAS 有 rsync 守护进程,并且您选择通过以下方式连接到它:
rsync -rlAtgoDiv /Users/seamus/Desktop/ [email protected]:/backup/Desktop
然后rsync
会将目的地视为远程设备,并用字符显示传输<
。