Rsync over ssh: "ERROR: module read only" tiba-tiba muncul

11

Saya telah menggunakan dari waktu rsync / ssh untuk mencadangkan konten host bersama saya ke Synology NAS pribadi saya (212j dalam hal ini), dan itu bekerja dengan cukup baik. Sebagai informasi, saya menggunakan sshkoneksi tanpa kata sandi .

3 hari yang lalu, saya memperbarui perangkat lunak NAS saya dan karena (atau setidaknya saya percaya itu sejak itu), cadangan tidak akan berfungsi lagi. Saya mendapatkan kesalahan berikut di host:

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

..yang saya tidak mengerti. selain itu tidak ada yang berubah yang saya ketahui dari sumber dan tujuan yang dapat dikaitkan dengan rsyncatau ssh, saya memang memeriksa beberapa hal dan semua tampaknya baik-baik saja:

  • Saya masih dapat terhubung melalui sshdari host ke NAS saya dengan pengguna yang baik, jadi hal-hal ssh seperti kunci belum berubah.
  • Saya juga memiliki izin file yang benar pada NAS (saya memeriksa, dan juga mencoba membuat file, direktori, .. dengan pengguna yang digunakan rsyncmelalui ssh).

Saya membaca di sana-sini bahwa kesalahan itu berarti bahwa saya harus memastikan bahwa saya rsyncd.confmemiliki hak read only = nodi dalamnya, tetapi sejauh yang saya tahu, saya tidak pernah menggunakan rsyncdsebaik saya tidak pernah mengkonfigurasi apa pun untuk itu dan sampai sekarang itu berfungsi seperti pesona. .

Saya menggunakan perintah berikut untuk melakukan backup:

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

Jadi saya mandek dan benar-benar tidak tahu apa yang terjadi.


Edit:

Seperti yang disarankan dalam komentar, saya juga mencoba mengirimkan perintah ke ssh (tetapi tidak dari dalam sesi ssh), yang bekerja seperti yang diharapkan, dan juga mencoba perintah rsync tunggal, yang tidak berfungsi, gagal seperti perintah cadangan lengkap.

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

dan

(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
pengguna978548
sumber
Coba lakukan tes pembaruan jarak jauh, tetapi dengan perintah yang diberikan kepada ssh pada baris perintah alih-alih melalui sesi login ssh. Pastikan juga ruang target tidak penuh.
Skaperen
Terima kasih atas saran Anda. Saya mengedit pertanyaan dengan hasil mereka. Juga, ruang target tidak penuh sama sekali (saya sudah yakin, tapi saya periksa lagi)
user978548

Jawaban:

19

Saya memiliki masalah yang sama setelah memperbarui NAS Synology saya ke DSM 4.1. Saya juga melakukan rsync atas SSH. Dalam situasi saya menggunakan rsync user root @ ip juga berfungsi tetapi meninggalkan file di server dengan root pemilik yang tidak saya inginkan.

Saya menemukan di antarmuka pengguna admin NAS, bahwa untuk beberapa alasan di ControlPanel-> Users-> MyRSyncUser-> Edit -> "Priviliges setup" tidak ada akses baca / tulis ke rumah. Tujuan RSYNC saya ada di bawah rumah.

Pengaturan ini untuk hak istimewa berhasil untuk saya. Saya harap ini membantu.

Jesper Munkholm
sumber
Terima kasih banyak ! Itu berhasil! Lain kali saya memperbarui DSM, saya akan memeriksa ulang izin ..
user978548
8
Ini tampaknya berfungsi jika saya menggunakan nama jalur lengkap (yaitu, rsync something nas:/volume2/homes/foo/bar/bukannya rsync something nas:bar/).
Jukka Suomela
path lengkap adalah langkah terakhir bagi saya dalam masalah debugging yang menjengkelkan. Terima kasih!
joevallender
1
Masalah dengan solusi ini (saya belum menemukan yang lebih baik) adalah bahwa ia memberikan hak pengguna pada semua rumah pengguna, bukan hanya milik mereka.
CryingCyclops
Dalam kasus saya (dengan versi yang lebih baru saya berasumsi), saya juga harus mengubah ke sintaks berbasis modul (lihat superuser.com/questions/559047/... )
sknat
6

Saya menyingkirkan ERROR: modul hanya dapat dibaca dengan mengubah path jarak jauh dari / var / services / homes / rsync ke / volume2 / homes / rsync

DSM 5.1

Reio
sumber
4

Saya mengalami masalah yang sama setelah memutakhirkan ds1010 synology + ke dsm 4.1-2661.

Saya tidak punya waktu untuk memahami apa yang terjadi pada rsync yang disediakan oleh synology tetapi tampaknya tidak standar. Jadi, inilah solusi saya ...

Saya tidak ingin meretas hak istimewa (pengaturan multi-pengguna), jadi saya telah mengkompilasi ulang rsync secara statis di laptop saya, kemudian saya mentransfer biner pada nas sinologi.

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

Anda dapat memberitahu rsync untuk menggunakan biner baru Anda, bukan biner default, dengan parameter ini:

--rsync-path=<myhome>/rsync

Sekarang saya dapat terus menggunakan duplikat dengan rsync, dengan menambahkan parameter berikut ke duplikat:

--rsync-options="--rsync-path=<myhome>/rsync"
Hyacinthe Cartiaux
sumber
Inilah yang saya lakukan dengan DS212j saya, kecuali saya menggunakan ipkg untuk menginstal rsync baru. Petunjuk Synology untuk menginstal ipkg ada di sini .
Jason
Saya tidak dapat menemukan apa pun di ipkg untuk DSM 5.2, jadi untuk DS215j saya melakukan sebagai berikut untuk mengkompilasi (saya sudah memiliki lengan lintas-kompiler-tidak diketahui-eabi-gcc tergeletak di sekitar) ./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. Letakkan biner di / opt / bin / di NAS. Saya juga harus memberi pengguna cadangan shell di / etc / passwd dengan mengubah / sbin / nologin ke / bin / sh (Harus ada beberapa opsi yang lebih aman).
thomasa88
1

Saya memiliki masalah yang sama, tetapi saya tidak menggunakan pengguna khusus untuk rsync.

Saya harus memperbaiki hak istimewa di Control Panel -> Folder bersama.

pengguna141612
sumber
0

Saya memiliki masalah serupa saat terhubung ke Synology 211j melalui sst Putty. Saya harus mengaktifkan

"Control Panel -> Network backup -> Aktifkan layanan backup jaringan".

Ini bekerja sekarang.

Rene Duris
sumber
-1

Saya membuatnya bekerja dengan masuk sebagai root, bukan admin atau pengguna biasa.

Leon
sumber