我正在尝试通过将新生成的文件添加到远程服务器来设置 rsync 以将我的主 Web 服务器同步到远程服务器。
这是我使用的命令:
rsync -avh --update -e "ssh -i /path/to/thishost-rsync-key" remoteuser@remotehost:/foo/bar /foo/bar
Run Code Online (Sandbox Code Playgroud)
但似乎网络服务器实际上传输了所有文件,尽管有“--update”标志。我尝试了不同的标志组合(例如省略“-a”并使用“-uv”),但没有任何帮助。如何修改 rsync 命令以仅发送新添加的文件?
据微软称,
当文件从 NTFS 驱动器复制到 FAT 驱动器时,必须进行一些文件时间戳舍入;文件时间戳四舍五入到下一个偶数秒。
(剪辑)
NTFS 时间戳:7 小时 31 分 0 秒 001。
FAT 时间戳变为 7 小时 31 分 2 秒 000。
然而,man rsync
说
--修改窗口
比较两个时间戳时,如果它们的差异不超过修改窗口值,则 rsync 将时间戳视为相等。这通常是 0(对于完全匹配),但您可能会发现在某些情况下将其设置为更大的值很有用。特别是,当与 MS Windows FAT 文件系统(代表时间为 2 秒分辨率)进行传输时,--modify-window=1 非常有用(允许时间相差最多 1 秒)。
我认为--modify-window=2
是正确的选择,因为不是执行“舍入”而是执行“天花板”。谁能告诉我我是否正确?
相关或不相关的信息:
在我的环境中,FAT32 USB中文件的mtime分辨率为1秒,并且“flooring”完成,虽然我不知道原因。USB 使用fdisk
和 进行格式化mkfs -t fat -F 32
。文件从 Linux Mint 传输到 Volumio。我检查时间戳,使用date -r +%s.%N
.
补充:
我找到了另一个信息。rsync 的可靠邮件线程说
时间戳在 vfat 上总是一个问题。它有 1 或 2 秒的分辨率,因此 …
rsync ×2