web-dev-qa-db-ja.com

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

私はしばらくの間、rsync/sshを使用して共有ホストのコンテンツを個人のSynologyにバックアップしましたNAS(この場合は212j))、それはかなりうまくいきました。詳細については、パスワードを使用します-less 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セッション内からではなく)渡そうとしました。また、完全なバックアップコマンドと同じように、機能しない単一の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
11
user978548

Synologyを更新した後も同じ問題が発生しましたNASをDSM 4.1に変更しました。SSH経由でrsyncも実行しています。rsyncユーザーroot @ ipを使用する状況でも機能しましたが、サーバーにファイルを所有者が残しました欲しくない根。

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

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

19
Jesper Munkholm

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

DSM 5.1

6
Reio

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

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

権限をハックしたくなかったので(マルチユーザーセットアップ)、ラップトップでrsyncを静的に再コンパイルしてから、バイナリをシノロジー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"
4

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

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

1
user141612

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

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

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

0
Rene Duris