Rsync über ssh: "FEHLER: Modul ist schreibgeschützt" erschien plötzlich

11

Ich habe seit einiger Zeit rsync / ssh verwendet, um meine freigegebenen Hostinhalte auf meinem persönlichen Synology NAS (212j) zu sichern, und es hat ganz gut funktioniert. Zur Information verwende ich eine kennwortlose sshVerbindung.

Vor 3 Tagen habe ich meine NAS-Software aktualisiert und seitdem (oder zumindest glaube ich, dass es seitdem so ist) funktioniert das Backup nicht mehr. Auf dem Host wird folgende Fehlermeldung angezeigt:

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

..was ich nicht verstehe. Abgesehen davon hat sich nichts geändert, von dem ich sowohl in der Quelle als auch im Ziel weiß, dass es mit rsyncoder in Verbindung gebracht werden sshkann. Ich habe ein paar Dinge überprüft und alles scheint in Ordnung zu sein:

  • Ich kann immer noch sshmit dem guten Benutzer eine Verbindung vom Host zu meinem NAS herstellen, sodass sich SSH-Inhalte wie Schlüssel nicht geändert haben.
  • Ich habe auch die richtigen Dateiberechtigungen auf dem NAS (ich habe überprüft und auch versucht, Dateien, Verzeichnisse usw. mit dem von rsyncthrough verwendeten Benutzer zu erstellen ssh).

Ich habe hier und da gelesen, dass der Fehler bedeutet, dass ich sicherstellen muss, dass ich rsyncd.confdas Recht read only = nodazu habe, aber soweit ich weiß, habe rsyncdich nie etwas dafür verwendet und nie konfiguriert, und bis jetzt hat es wie ein Zauber funktioniert. .

Ich benutze den folgenden Befehl, um die Sicherung durchzuführen:

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

Also stecke ich fest und kann wirklich nicht herausfinden, was passiert ist.


Bearbeiten:

Wie in den Kommentaren vorgeschlagen, habe ich auch versucht, Befehle an ssh zu übergeben (aber nicht innerhalb einer ssh-Sitzung), die wie erwartet funktionierten, und habe auch einen einzelnen rsync-Befehl ausprobiert, der nicht funktioniert hat und genau wie der vollständige Sicherungsbefehl fehlgeschlagen ist.

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

und

(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
user978548
quelle
Versuchen Sie, die Remote-Update-Tests durchzuführen, jedoch mit Befehlen, die ssh in der Befehlszeile anstatt über eine ssh-Anmeldesitzung gegeben werden. Stellen Sie außerdem sicher, dass der Zielbereich nicht voll ist.
Skaperen
Vielen Dank für Ihre Vorschläge. Ich habe die Frage mit ihrem Ergebnis bearbeitet. Außerdem ist der Zielbereich überhaupt nicht voll (ich war mir bereits sicher, habe es aber erneut überprüft)
user978548

Antworten:

19

Ich hatte das gleiche Problem nach dem Update meines Synology NAS auf DSM 4.1. Ich mache auch rsync über SSH. In meiner Situation funktionierte die Verwendung von rsync user root @ ip ebenfalls, ließ aber die Dateien auf dem Server mit dem Eigentümer root, den ich nicht wollte.

Ich habe in der NAS-Administrator-Benutzeroberfläche festgestellt, dass aus irgendeinem Grund in ControlPanel-> Benutzer-> MyRSyncUser-> Bearbeiten -> "Privilegierte Einrichtung" kein Lese- / Schreibzugriff auf die Häuser vorhanden war. Mein RSYNC-Ziel befindet sich unter den Häusern.

Das auf privilidge zu setzen hat für mich funktioniert. Ich hoffe das hilft.

Jesper Munkholm
quelle
Ich danke dir sehr ! Das hat funktioniert !
Wenn
8
Dies scheint zu funktionieren, wenn ich vollständige Pfadnamen verwende (dh rsync something nas:/volume2/homes/foo/bar/anstelle von rsync something nas:bar/).
Jukka Suomela
Der vollständige Pfad war für mich der letzte Schritt beim nervigen Debuggen. Vielen Dank!
Joevallender
1
Das Problem bei dieser Lösung (ich habe keine bessere gefunden) ist, dass sie den Benutzern Berechtigungen für alle Benutzerheime gewährt, nicht nur für ihre eigenen.
CryingCyclops
In meinem Fall (mit einer neueren Version Ich gehe davon aus ), habe ich auch zu Veränderungen Modul basierten Syntax (siehe hatte superuser.com/questions/559047/... )
sknat
6

Ich habe ERROR entfernt: Das Modul ist schreibgeschützt, indem der Remote-Pfad von / var / services / Homes / rsync in / volume2 / Homes / rsync geändert wird

DSM 5.1

Reio
quelle
4

Ich habe das gleiche Problem nach dem Upgrade einer Synology ds1010 + auf dsm 4.1-2661 festgestellt.

Ich habe nicht die Zeit zu verstehen, was mit dem von der Synologie bereitgestellten Rsync passiert ist, aber es scheint nicht Standard zu sein. Hier ist meine Problemumgehung ...

Ich wollte die Berechtigungen nicht hacken (Mehrbenutzer-Setup), also habe ich rsync in static auf meinem Laptop neu kompiliert und dann die Binärdatei auf die sinology nas übertragen.

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

Mit diesem Parameter können Sie rsync anweisen, Ihre neue Binärdatei anstelle der Standard-Binärdatei zu verwenden:

--rsync-path=<myhome>/rsync

Jetzt kann ich die Duplizität mit rsync weiter verwenden, indem ich der Duplizität den folgenden Parameter hinzufüge:

--rsync-options="--rsync-path=<myhome>/rsync"
Hyacinthe Cartiaux
quelle
Dies habe ich mit meinem DS212j gemacht, außer dass ich ipkg verwendet habe, um den neuen rsync zu installieren. Die Anweisungen von Synology zur Installation von ipkg finden Sie hier .
Jason
Ich konnte auf ipkg für DSM 5.2 nichts finden, also habe ich für meinen DS215j Folgendes kompiliert (ich hatte bereits den Cross-Compiler-Arm-unknown-eabi-gcc herumliegen) ./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. Legen Sie die Binärdatei in / opt / bin / auf dem NAS ab. Ich muss meinem Backup-Benutzer auch eine Shell in / etc / passwd geben, indem ich / sbin / nologin in / bin / sh ändere (es sollte einige sicherere Optionen geben).
Thomasa88
1

Ich hatte das gleiche Problem, aber ich habe keinen dedizierten Benutzer für rsync verwendet.

Ich musste Berechtigungen in der Systemsteuerung -> Freigegebene Ordner korrigieren.

user141612
quelle
0

Ich hatte ein ähnliches Problem beim Herstellen einer Verbindung zu Synology 211j über Putty's ssh. Ich musste aktivieren

"Systemsteuerung -> Netzwerksicherung -> Netzwerksicherungsdienst aktivieren".

Es funktioniert jetzt.

Rene Duris
quelle
-1

Ich habe es zum Laufen gebracht, indem ich mich als root anstatt als Administrator oder normaler Benutzer angemeldet habe.

Leon
quelle