我已登录到我的 Synology NAS,尽管我可以从我的服务器 rsync 到 NAS 以及反之亦然,但是当源和目标都在 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>
我不知道为什么我提供的语法会出现模块问题。为什么会产生错误?
答案1
看来必须使用绝对目录,如 /volume1/homes/username/...
答案2
重新查看此帖子时,我偶然发现了与较新版本的 Synology NAS 相同的问题。看来 Synology 运行 rsync 守护程序,因此语法与常规路径不同。
首先你可以
nmap -p 873 --script rsync-list-modules <NAS_IP>
获取 rsync 守护进程知道的 rsync 模块列表。据我了解,这些名称是 NAS 中根文件夹的名称。
然后而不是
rsync /path/to/src user@IP:/path/to/dst
使用
rsync /path/to/src user@IP::modulename/path/in/module
也可能存在权限问题,但我认为这至少是问题的一部分。
答案3
下列的https://serverfault.com/a/454876/589058,我在 Synology 服务器上解决这个问题的方法如下:
1) download rsync-x86 from https://github.com/JBBgameich/rsync-static/releases;
2) scp /path/to/local/rsync-x86 my_server:/tmp/;
3) ssh my_server;
4) chmod +x /tmp/rsync-x86;
5) exit;
6) rsync -avzPh --rsync-path=/tmp/rsync-x86 source dest;
答案4
据我所知Synology 论坛主题,我会尝试更新固件和您的 NAS 设备,看看是否能解决问题。也许这个帖子很有趣。