从 Windows10 到 Mac 的 Rsync 不允许多个源路径

从 Windows10 到 Mac 的 Rsync 不允许多个源路径

我曾经在 Raspberry Pi 上运行夜间 rsync 客户端来备份 Windows 10 计算机上的某些文件夹。此脚本已运行了 10 多年,没有出现任何问题。我最近将客户端从 Pi 移到了运行 High Sierra 的旧 Mac。备份脚本相当复杂,但我已将问题缩小到 Mac 上的以下几点:如果我有多个源目录(Windows10 PC 上的路径),rsync 命令就会失败。如果我只有一个源目录,该命令就会起作用。源目录是什么并不重要。其中任何一个作为源目录都可以正常工作。两个或更多会失败。这个完全相同的 rsync 命令行在 Raspberry Pi 上运行良好,并且曾经在 Ubuntu 上运行良好。

此命令有效,将一些音乐从 PC 备份到 Mac:

rsync -azv -e /usr/bin/ssh --progress --delete --exclude tbird.bkup --exclude .DS_Store --link-dest=/Volumes/backups/ronopolis/5_thu \
    rsync_user@ronopolis:/cygdrive/d/Music /Volumes/backups/ronopolis/6_fri

此命令有效,备份一些 DVD:

rsync -azv -e /usr/bin/ssh --progress --delete --exclude tbird.bkup --exclude .DS_Store --link-dest=/Volumes/backups/ronopolis/5_thu \
    rsync_user@ronopolis:/cygdrive/d/DVD  /Volumes/backups/ronopolis/6_fri

失败,因为我有两个源路径:

rsync -azv -e /usr/bin/ssh --progress --delete --exclude tbird.bkup --exclude .DS_Store --link-dest=/Volumes/backups/ronopolis/5_thu \
    rsync_user@ronopolis:/cygdrive/d/DVD rsync_user@ronopolis:/cygdrive/d/Music  /Volumes/backups/ronopolis/6_fri

这是错误信息:

rsync error: syntax or usage error (code 1) at /BuildRoot/Library/Caches/com.apple.xbs/Sources/rsync/rsync-52.0.1/rsync/main.c(1170) [receiver=2.6.9]

答案1

在 Mac OSX 版本rsync(版本2.6.9)中,仅允许使用单个远程主机和路径。在3.0.0版本增强包括允许多个远程源:

Rsync 现在允许指定多个远程源参数,而不必依赖远程 shell 的特殊空间分割副作用。其他远程参数必须指定相同的主机或空主机(例如空的::file1 或 ::module/file2)。例如,这意味着现在可以在本地使用括号扩展:rsync ‑av host:dir/{f1,f2}。

不过,这很有用,它提醒了我如何使用单个远程源定义来复制两个目录树,同时仍然运行旧版本rsync

rsync -azv -e /usr/bin/ssh --progress --delete --exclude tbird.bkup --exclude .DS_Store --link-dest=/Volumes/backups/ronopolis/5_thu \
    rsync_user@ronopolis:'/cygdrive/d/DVD /cygdrive/d/Music' /Volumes/backups/ronopolis/6_fri

相关内容