rsyncd
(rsyncのデーモンバージョン)を使用してmacOSからSynologyサーバーにファイルをバックアップするのに問題があります。以下は失敗したコマンドです。
% rsync -rlcAXtgoDiv --fake-super ~/scripts rsync://seamus@SynologyNAS-1/backups/scripts-backup/ > ~/scripts/log.txt 2>&1
エラーは次のとおりです。 (私が作成したログファイルとコマンドラインにあります):
rsync: [sender] write error: Broken pipe (32)
rsync error: error in socket IO (code 10) at io.c(848) [sender=3.2.7]
-A
いくつかの実験を行った後、問題の原因をこのオプションを使用することに絞り込みました。
--acls, -A preserve ACLs (implies --perms)
--xattrs, -X preserve extended attributes
--fake-super store/recover privileged attrs using xattrs
私が理解したように、この--fake-super
オプションを使用すると、rsync
ACLを必要なく拡張属性として保存できますsudo
。しかしman rsync
、。
さらなる調査によると、Synologyサーバーはこの行が次に含まれていることを示しました/etc/rsyncd.conf
。
refuse options = acls
/etc/rsyncd.conf
だからその行を編集してコメントしましたrefuse options = acls
。rsync
前のコマンドを再実行すると正常に実行されます。 :)
しかし、ちょっと待ってください。質問があります。
rsync
SynologyNAS-1に報告されたバージョンは次のとおりです。
rsync version 3.1.2 protocol version 31
- バージョンの違い(Synologyの場合3.1.2、macOSの場合3.2.7)を除いて、Synologyのファイルシステムは
btrfs
APFSほど不透明に見えます!
私の質問は、私が望む正しい(MacOS互換)ACLを実際にバックアップしているのでしょうか?それとも、ただウォッチャーを沈黙させるのでしょうか?これに対するどんな考えでも大歓迎です。
FWIW:実際にはちゃんとバックアップをしているようです。なぜならバックアップを実行すると、rsyncd
これらのエラーは表示されません。rsyncd
不要な暗号化手順(すべて私のLANにある)を避けるために切り替えてバックアップを簡素化したいと思います。