使用 rsync 将新文件从 NAS 复制到外部硬盘驱动器

使用 rsync 将新文件从 NAS 复制到外部硬盘驱动器

我想将新文件从 NAS 复制到外部硬盘。到目前为止,我确实手动复制了新文件。现在我想使用一个脚本来自动执行此操作。然而,到目前为止,我使用 rsync 尝试的所有操作似乎都复制了所有文件,而不仅仅是新文件。我尝试使用以下命令:

rsync -ar \
      --ignore-existing \
      --size-only \
      --progress --info=progress2 \
      --dry-run \
      "/Volumes/NAS" "/Volumes/G-DRIVE mobile SSD R-Series"

我也尝试过不只使用大小,使用校验和等。有人可以向我解释这种行为或者我需要做什么才能完成我的任务吗?打印统计信息时,它总是显示它将传输所有文件。另外,通过 -i 参数,我可以获得每个文件的以下信息:>f++++++++++

答案1

正确的命令可能应该是这样的:

rsync --archive --progress --info=progress2 \
    '/Volumes/NAS/' '/Volumes/G-DRIVE mobile SSD R-Series'

-a( --archive) 标志隐含( -t)--times-r( --recursive),因此您无需显式指定它们。当您可以使用( )--size-only获得大小和时间戳时,使用是一个糟糕的选择,但如果您要复制到有限的文件系统(例如 FAT),您可能需要一个时间窗口来克服两秒时间粒度。除非您在目标上获得任何类型的副本后想要忽略对源文件的更改,否则不应使用。-a--archive--modify-window=2--ignore-existing

测试时一定要使用--dry-run( -n),但请记住在准备好rsync应用操作时将其删除。

最后,源目录通常应该有一个尾部斜杠。文档是这样描述的,

源上的尾部斜杠会更改此行为,以避免在目标上创建额外的目录级别。您可以将/源尾随视为“复制该目录的内容“ 相对于 ”按名称复制目录”。

相关内容