无法在 Synology NAS 上本地 rsync

phy*_*ael 3 rsync

我已登录 Synology NAS,虽然我可以在服务器和 NAS 之间进行 rsync 同步,反之亦然,但在源和目标都在 DiskStation 上的情况下,我无法使用 rsync。

midnight my_user /tmp> rsync -Pauvvv synoproxy.conf del.del
sending incremental file list
[sender] make_file(synoproxy.conf,*,0)
send_file_list done
send_files starting
server_recv(2) starting pid=15513
ERROR: module is read only
rsync error: syntax or usage error (code 1) at main.c(1034) [Receiver=3.0.8]
[Receiver] _exit_cleanup(code=1, file=main.c, line=1034): about to call exit(1)
rsync error: rsync service is no running (code 43) at io.c(653) [sender=3.0.8]
[sender] _exit_cleanup(code=43, file=io.c, line=653): about to call exit(43)
midnight my_user /tmp> 
Run Code Online (Sandbox Code Playgroud)

我不知道为什么我提供的语法出现模块问题。为什么这会产生错误?

小智 7

看来必须使用绝对目录,如 /volume1/homes/username/...


小智 5

恢复此线程后,我在更新版本的 Synology NAS 上偶然发现了同样的问题。Synology 似乎运行 rsync 守护程序,因此语法与常规路径不同。

首先你可以

nmap -p 873 --script rsync-list-modules <NAS_IP>
Run Code Online (Sandbox Code Playgroud)

获取 rsync 守护进程知道的 rsync 模块列表。据我了解,这些名称是 NAS 中根文件夹的名称。

然后代替

rsync /path/to/src user@IP:/path/to/dst
Run Code Online (Sandbox Code Playgroud)

使用

rsync /path/to/src user@IP::modulename/path/in/module
Run Code Online (Sandbox Code Playgroud)

也可能存在许可问题,但我认为这至少是问题的一部分。