SSH経由のRsync:「エラー:モジュールは読み取り専用です」が突然表示されました


11

私はしばらくの間、rsync / sshを使用して共有ホストのコンテンツを個人のSynology NAS(つまり、212j)にバックアップしてきましたが、それは非常にうまくいきました。詳細については、パスワードなしのssh接続を使用しています。

3日前にNASソフトウェアを更新しました(少なくとも、それ以降だと思います)ため、バックアップが機能しなくなります。ホストで次のエラーが発生します。

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

..わからない rsyncまたはsshに関連する可能性のあるソースと宛先の両方で私が知っている変更は何もないことを除けば、いくつかのことを確認しましたが、すべて問題ありません。

  • それでもssh、ホストからNASに適切なユーザーを介して接続できるので、キーなどのsshのものは変更されていません。
  • また、NASに適切なファイルアクセス許可を持っています(で使用したユーザーを使用しrsyncて、ファイル、ディレクトリなどを確認し、作成しようとしましたssh)。

私はあちこちを読んで、エラーは自分rsyncd.confが正しい権利を持っていることを確認する必要があることを意味しますが、私がread only = no知る限り、私はrsyncdそれを何も使用せず、何も設定したことがなく、今までそれは魅力のように機能しました。 。

次のコマンドを使用してバックアップを実行します。

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

だから私は行き詰まって、何が起こったのか本当に理解できません。


編集:

コメントで示唆されているように、期待どおりに機能するコマンドをsshに(sshセッション内からではなく)渡してみました。また、完全なバックアップコマンドと同じように失敗して、1つの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

リモート更新テストを実行してみてください。ただし、sshログインセッションではなく、コマンドラインでsshにコマンドを指定してください。また、ターゲットスペースがいっぱいでないことを確認してください。
Skaperen 2012

あなたの提案をありがとう。質問の結果を編集しました。また、ターゲットスペースがまったくいっぱいではありません(確信はありましたが、もう一度確認しました)
user978548

回答:


19

Synology NASをDSM 4.1にアップデートした後、同じ問題が発生しました。SSHを介してrsyncも行います。私の状況では、rsyncユーザーroot @ ipを使用することもできましたが、サーバーにファイルを所有者rootで残しておきました。

NAS管理ユーザーインターフェイスで、何らかの理由でControlPanel-> Users-> MyRSyncUser-> Edit-> "Priviliges setup"で、家への読み取り/書き込みアクセス権がないことがわかりました。私のRSYNC宛先は家の下にあります。

これを特権に設定するとうまくいきました。これがお役に立てば幸いです。


どうもありがとうございます !うまくいきました!次回は私の更新DSMは、私はダブルチェックします権限に...
user978548

8
これは、フルパス名を使用した場合(つまり、rsync something nas:/volume2/homes/foo/bar/ではなくrsync something nas:bar/)機能するようです。
Jukka Suomela

フルパスは、私にとってデバッグの煩わしさの最後のステップでした。ありがとう!
joevallender 2014年

1
この解決策の問題(もっと良い解決策は見つかりませんでした)は、自分の家だけでなく、すべてのユーザーの家に対する特権をユーザーに与えることです。
CryingCyclops 2015年

私の場合(私が想定する新しいバージョンの場合)、モジュールベースの構文に変更する必要もありました(superuser.com/questions/559047/…を参照)
sknat

6

エラーを取り除きました:リモートパスを/ var / services / homes / rsyncから/ volume2 / homes / rsyncに変更することで、モジュールは読み取り専用になります

DSM 5.1


4

Synology ds1010 +をdsm 4.1-2661にアップグレードした後、同じ問題が発生しました。

synologyが提供するrsyncに何が起こったのかを理解する時間はありませんが、標準的ではないようです。だからここに私の回避策があります...

権限をハックしたくなかったので(マルチユーザーセットアップ)、ラップトップでrsyncをstaticに再コンパイルしてから、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

次のパラメーターをduplicityに追加することで、rsyncでduplicityを引き続き使用できます。

--rsync-options="--rsync-path=<myhome>/rsync"

これは私がDS212jで行ったことですが、新しいrsyncをインストールするためにipkgを使用しました。Synologyがipkgをインストールする方法はこちらです。
Jason

DSM 5.2のipkgで何も見つからなかったため、DS215jの場合、次のようにコンパイルしました(すでにクロスコンパイラarm-unknown-eabi-gccがありました)./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。NASの/ opt / bin /にバイナリを配置します。また、/ sbin / nologinを/ bin / shに変更して、バックアップユーザーに/ etc / passwdのシェルを与える必要があります(より安全なオプションがいくつかあるはずです)。
thomasa88 2016

1

同じ種類の問題がありましたが、rsync専用のユーザーを使用していませんでした。

コントロールパネル->共有フォルダーで権限を修正する必要がありました。


0

Puttyのsshを介してSynology 211jに接続しているときにも同様の問題がありました。有効にする必要がありました

「コントロールパネル->ネットワークバックアップ->ネットワークバックアップサービスを有効にする」。

それは現在働いています。


-1

管理者または通常のユーザーの代わりにrootとしてログインすることで機能しました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.