我已经使用了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)"
,但从表面上看,它表示该文件正在从NAS 传输到我的 Mac上- 正在接收该文件。IOW,我已将该术语与and (在较小程度上)混为一谈。但这似乎并不是发生的情况 - 上例中的文件正在从源/Mac发送到目标/NAS。source
sent
local host
有人可以向我解释这些明显的差异吗?
Rsync 以三种不同的模式运行。
“发送”和“收到”在前两种情况下具有明确的含义,而在第三种情况下则没有那么明确。
当您使用本地到本地副本时,它将始终显示
>
传输符号。虽然您
/Volumes/backup/Desktop
可能有 NAS 支持,但您rsync
并不知道这一点。它不使用任何定义远程端的远程协议(远程 shell 或 rsync 守护进程)。就程序而言,这些只是本地文件系统。网络部分不是由 完成的rsync
,而是由您的操作系统完成的。因此,它将始终显示>
。如果您的 NAS 有 rsync 守护进程,并且您选择通过以下方式连接到它:
rsync -rlAtgoDiv /Users/seamus/Desktop/ [email protected]:/backup/Desktop
然后
rsync
会将目的地视为远程设备,并用字符显示传输<
。