我曾经用rsync / ssh把我的共享主机内容备份到我个人的Synology NAS(212j),而且效果很好。 有关信息,我使用无密码的ssh
连接。
3天前,我更新了我的NAS软件,自从(或者至less我相信那是因为那个),备份将不再起作用。 我在主机上得到以下错误:
rsync: writefd_unbuffered failed to write 4 bytes to socket [sender]: Broken pipe (32) ERROR: module is read only
..我不明白。 除了在源和目的地都知道可以和rsync
或者ssh
有关的东西之外没有任何改变,我确实检查了一些东西,看上去都没问题:
ssh
从主机连接到我的NAS与好用户,所以像密钥ssh的东西没有改变。 rsync
通过ssh
使用的用户)。 我在这里和那里看到,错误意味着我必须确保我的rsyncd.conf
有正确的read only = no
,但据我所知,我从来没有使用过rsyncd
,也没有为它configuration过任何东西,直到现在它像一个魅力工作..
我使用以下命令来执行备份:
rsync -ab --recursive \ --files-from="$FILES_FROM" \ --backup-dir=backup_$SUFFIX \ --delete \ --filter='protect backup_*' \ $WDIRECTORY/ \ remote_backup:$REMOTE_BACKUP/
所以我卡住了,真的不知道发生了什么事。
编辑:
正如在评论中所build议的,我也尝试传递命令ssh(但不是从一个ssh会话内),工作正常,也尝试了一个单一的rsync命令,没有工作,失败就像完整的备份命令。
(sharedHost):hostuser:~ > touch test.txt (sharedHost):hostuser:~ > rsync test.txt remote_backup:backups/test.txt ERROR: module is read only rsync error: syntax or usage error (code 1) at main.c(1034) [Receiver=3.0.8] rsync: connection unexpectedly closed (9 bytes received so far) [sender] rsync error: error in rsync protocol data stream (code 12) at io.c(601) [sender=3.0.7]
和
(sharedHost):hostuser:~ > ssh remote_backup 'touch /abs_path_to_backups/backups/test2.txt && echo "ProoF" > /abs_path_to_backups/backups/test2.txt' (sharedHost):hostuser:~ > ssh remote_backup 'cat /abs_path_to_backups/backups/test2.txt' ProoF
将Synology NAS更新到DSM 4.1后,我遇到同样的问题。 我也通过SSH做rsync。 在我的情况下使用rsync用户root @ ip也工作,但留下的所有者的根,我不想要的服务器上的文件。
我在NASpipe理员用户界面中发现,出于某种原因,在ControlPanel->用户 – > MyRSyncUser->编辑 – >“权限设置”,没有读/写访问的家园。 我的RSYNC目的地是在家中。
设置这privilidge为我工作。 我希望这有帮助。
在将Synology ds1010 +升级到dsm 4.1-2661后,我遇到了同样的问题。
我没有时间理解synology提供的rsync发生了什么事情,但似乎并不标准。 所以这里是我的解决方法…
我不想破解权限(多用户设置),所以我已经在我的笔记本电脑上静态地重新编译了rsync,然后我把这个二进制文件转移到了sinology nas上。
wget https://rsync.samba.org/ftp/rsync/rsync-3.0.9.tar.gz tar xzvf rsync-3.0.9.tar.gz cd rsync-3.0.9 export CFLAGS=--static ./configure make scp rsync <login>@<nas_hostname>:
你可以通过这个参数来告诉rsync使用你的新的二进制文件而不是默认的二进制文件:
--rsync-path=<myhome>/rsync
现在,我可以继续使用rsync进行复制,通过添加以下参数来复制:
--rsync-options="--rsync-path=<myhome>/rsync"
我摆脱了错误:模块是只读的通过更改远程path从/ var / services / homes / rsync到/ volume2 / homes / rsync
DSM 5.1
我有同样的问题,但我没有使用rsync的专用用户。
我必须在控制面板 – >共享文件夹中修复权限。
在使用Putty的ssh连接到Synology 211j时,我遇到了类似的问题。 我必须启用
“控制面板 – >networking备份 – >启用networking备份服务”。
现在正在工作。
我通过以root身份login,而不是pipe理员或普通用户login。