Rsync sobre ssh: "ERROR: el módulo es de solo lectura" apareció de repente

11

Utilicé desde hace tiempo rsync / ssh para hacer una copia de seguridad de mis contenidos de host compartidos en mi Synology NAS personal (212j para el caso), y funcionó bastante bien. Para información, uso una sshconexión sin contraseña .

Hace 3 días, actualicé mi software NAS y desde entonces (o al menos creo que es así), la copia de seguridad ya no funcionará. Me sale el siguiente error en el host:

rsync: writefd_unbuffered failed to write 4 bytes to socket [sender]: Broken pipe (32)
ERROR: module is read only 

..que no entiendo. además de eso, nada cambió que yo sepa, tanto en origen como en destino, que pueda estar relacionado con , rsynco sshverifiqué algunas cosas y todo parece estar bien:

  • Todavía puedo conectarme sshdesde el host a mi NAS con el buen usuario, por lo que las cosas ssh como las claves no han cambiado.
  • También tengo los permisos de archivo correcto en el NAS (he comprobado, y también trató de crear archivos, directorios, .. con el usuario utilizado por rsyncmedio ssh).

Leí aquí y allá que el error significa que tengo que asegurarme de que rsyncd.conftengo el derecho read only = no, pero que yo sepa, nunca lo usé rsyncdtan bien como nunca configuré nada y hasta ahora funcionó de maravilla. .

Yo uso el siguiente comando para hacer la copia de seguridad:

rsync -ab --recursive \
--files-from="$FILES_FROM" \
--backup-dir=backup_$SUFFIX \
--delete \
--filter='protect backup_*' \
$WDIRECTORY/ \
remote_backup:$REMOTE_BACKUP/

Así que estoy atascado y realmente no puedo entender qué pasó.


Editar:

Como se sugirió en los comentarios, también intenté pasar comandos a ssh (pero no desde dentro de una sesión ssh), que funcionó como se esperaba, y también probé un solo comando rsync, que no funcionó, fallando al igual que el comando de copia de seguridad completo.

(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]

y

(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
usuario978548
fuente
Intente realizar las pruebas de actualización remota, pero con los comandos dados a ssh en la línea de comandos en lugar de a través de una sesión de inicio de sesión ssh. También asegúrese de que el espacio objetivo no esté lleno.
Skaperen
Gracias por sus sugerencias Edité la pregunta con su resultado. Además, el espacio objetivo no está lleno en absoluto (ya estaba seguro, pero volví a comprobarlo)
usuario978548

Respuestas:

19

Tuve el mismo problema después de actualizar mi Synology NAS a DSM 4.1. También hago rsync sobre SSH. En mi situación, usar el usuario rsync root @ ip también funcionó, pero dejé los archivos en el servidor con la raíz del propietario que no quería.

Encontré en la interfaz de usuario del administrador NAS, que por alguna razón en ControlPanel-> Usuarios-> MyRSyncUser-> Editar -> "Configuración de Priviliges" no había acceso de lectura / escritura a los hogares. Mi destino RSYNC está debajo de las casas.

Establecer esto en privilidge funcionó para mí. Espero que esto ayude.

Jesper Munkholm
fuente
Muchas gracias ! Eso funciono ! La próxima vez que actualice DSM, volveré a verificar los permisos ..
user978548
8
Esto parece funcionar si uso nombres de ruta completos (es decir, en rsync something nas:/volume2/homes/foo/bar/lugar de rsync something nas:bar/).
Jukka Suomela
El camino completo fue el último paso para mí en el molesto episodio de depuración. ¡Gracias!
joevallender
1
El problema con esta solución (no he encontrado una mejor) es que otorga privilegios al usuario en todos los hogares de los usuarios, no solo en los suyos.
CryingCyclops
En mi caso (con una versión más reciente supongo), también tuvo que cambiar a la sintaxis basada módulo (véase superuser.com/questions/559047/... )
sknat
6

Me deshice de ERROR: el módulo se lee solo al cambiar la ruta remota de / var / services / homes / rsync a / volume2 / homes / rsync

DSM 5.1

Reio
fuente
4

Encontré el mismo problema después de actualizar un synology ds1010 + a dsm 4.1-2661.

No tengo tiempo para entender qué sucedió con el rsync proporcionado por synology, pero no parece estándar. Así que aquí está mi solución ...

No quería piratear los privilegios (configuración multiusuario), así que volví a compilar rsync en estática en mi computadora portátil, luego transfirí el binario en las nas de sinología.

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>:

Puede decirle a rsync que use su nuevo binario en lugar del predeterminado, con este parámetro:

--rsync-path=<myhome>/rsync

Ahora puedo continuar usando duplicidad con rsync, agregando el siguiente parámetro a duplicidad:

--rsync-options="--rsync-path=<myhome>/rsync"
Hyacinthe Cartiaux
fuente
Esto es lo que hice con mi DS212j, excepto que usé ipkg para instalar el nuevo rsync. Las instrucciones de Synology para instalar ipkg están aquí .
Jason
No pude encontrar nada en ipkg para DSM 5.2, así que para mi DS215j hice lo siguiente para compilar (ya tenía el compilador cruzado arm-unknown-eabi-gcc por ahí) ./configure --host=armv7 CFLAGS=-static EXEEXT=-static --prefix=/opt CC=arm-unknown-linux-gnueabi-gcc && make && arm-unknown-linux-gnueabi-strip rsync && make DESTDIR=$PWD/../prefix install. Ponga el binario en / opt / bin / en el NAS. También tengo que darle a mi usuario de respaldo un shell en / etc / passwd cambiando / sbin / nologin a / bin / sh (Debería haber algunas opciones más seguras).
thomasa88
1

Tuve el mismo tipo de problema, pero no estaba usando un usuario dedicado para rsync.

Tuve que arreglar los privilegios en el Panel de control -> Carpetas compartidas.

usuario141612
fuente
0

Tuve un problema similar al conectarme a Synology 211j sobre el ssh de Putty. Tuve que habilitar

"Panel de control -> Copia de seguridad de red -> Habilitar el servicio de copia de seguridad de red".

Está trabajando ahora.

Rene Duris
fuente
-1

Lo hice funcionar iniciando sesión como root en lugar de administrador o usuario normal.

León
fuente