Od pewnego czasu używałem rsync / ssh do tworzenia kopii zapasowych zawartości hosta współdzielonego na moim osobistym serwerze Synology NAS (212j w tym przypadku) i działało to całkiem dobrze. Aby uzyskać informacje, używam połączenia bez hasła ssh
.
3 dni temu zaktualizowałem oprogramowanie NAS i od tego czasu (a przynajmniej tak mi się wydaje, od tego czasu) kopia zapasowa nie będzie działać. Na hoście pojawia się następujący błąd:
rsync: writefd_unbuffered failed to write 4 bytes to socket [sender]: Broken pipe (32)
ERROR: module is read only
.. których nie rozumiem. poza tym nic się nie zmieniło, o czym wiem zarówno w źródle, jak i miejscu docelowym, które mogą być powiązane rsync
lub ssh
, sprawdziłem kilka rzeczy i wszystko wydaje się w porządku:
- Nadal mogę połączyć się
ssh
z hosta do mojego serwera NAS z dobrym użytkownikiem, więc rzeczy ssh, takie jak klucze, nie uległy zmianie. - Mam też odpowiednie uprawnienia do plików na serwerze NAS (sprawdziłem, a także starał się tworzyć pliki, katalogi, .. z użytkownikiem używanej przez
rsync
przezssh
).
Czytam tu i tam, że błąd oznacza, że muszę upewnić się, że mam do rsyncd.conf
tego prawo read only = no
, ale o ile wiem, nigdy nie użyłem rsyncd
tak dobrze, jak nigdy niczego nie konfigurowałem i do tej pory działało to jak urok. .
Używam następującego polecenia, aby wykonać kopię zapasową:
rsync -ab --recursive \
--files-from="$FILES_FROM" \
--backup-dir=backup_$SUFFIX \
--delete \
--filter='protect backup_*' \
$WDIRECTORY/ \
remote_backup:$REMOTE_BACKUP/
Więc utknąłem i naprawdę nie mogę zrozumieć, co się stało.
Edytować:
Jak zasugerowano w komentarzach, próbowałem również przekazać polecenia do ssh (ale nie z wnętrza sesji ssh), które działały zgodnie z oczekiwaniami, a także próbowałem pojedynczego polecenia rsync, które nie zadziałało, podobnie jak pełne polecenie tworzenia kopii zapasowej.
(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]
i
(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
Odpowiedzi:
Miałem ten sam problem po aktualizacji mojego serwera Synology NAS do DSM 4.1. Robię również rsync przez SSH. W mojej sytuacji użycie rsync użytkownika root @ ip również działało, ale pozostawiło pliki na serwerze z rootem właściciela, którego nie chciałem.
Znalazłem w interfejsie użytkownika administratora NAS, że z jakiegoś powodu w ControlPanel-> Użytkownicy-> MyRSyncUser-> Edytuj -> „Ustawienia uprawnień” nie było dostępu do odczytu / zapisu do domów. Moje miejsce docelowe RSYNC znajduje się pod domami.
Ustawienie tej uprzywilejowania działało dla mnie. Mam nadzieję, że to pomoże.
źródło
rsync something nas:/volume2/homes/foo/bar/
Zamiastrsync something nas:bar/
).Pozbyłem się BŁĘDU: moduł jest odczytywany tylko przez zmianę ścieżki zdalnej z / var / services / homes / rsync na / volume2 / homes / rsync
DSM 5.1
źródło
Ten sam problem napotkałem po aktualizacji synology ds1010 + do dsm 4.1-2661.
Nie mam czasu, aby zrozumieć, co stało się z rsync dostarczonym przez synology, ale nie wydaje się to standardowe. Oto moje obejście ...
Nie chciałem zhakować uprawnień (konfiguracja dla wielu użytkowników), więc ponownie skompilowałem rsync w static na moim laptopie, a następnie przeniosłem plik binarny na sinologię nas.
Możesz powiedzieć rsync, aby używał twojego nowego pliku binarnego zamiast domyślnego, za pomocą tego parametru:
Teraz mogę kontynuować używanie duplikatu w rsync, dodając do duplikatu następujący parametr:
źródło
./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
. Umieść plik binarny w / opt / bin / na NAS. Muszę również dać mojemu użytkownikowi kopii zapasowej powłokę w / etc / passwd poprzez zmianę / sbin / nologin na / bin / sh (Powinny być pewne bardziej bezpieczne opcje).Miałem ten sam problem, ale nie używałem dedykowanego użytkownika do rsync.
Musiałem naprawić uprawnienia w Panelu sterowania -> Foldery udostępnione.
źródło
Miałem podobny problem podczas łączenia się z Synology 211j przez ssh Putty. Musiałem włączyć
„Panel sterowania -> Kopia zapasowa sieci -> Włącz usługę kopii zapasowej sieci”.
Już działa.
źródło
Udało mi się to, logując się jako root zamiast administratora lub zwykłego użytkownika.
źródło