web-dev-qa-db-ja.com

BackupPC-なぜrsync--sender --server ...を使用するのですか?

CentOS5.5サーバーでBackupPCを試しているところです。私はほとんどすべてをデフォルト値でセットアップしています。

ホストの/ wwwディレクトリの基本的なバックアップを設定してみました。バックアップは次のエラーで失敗します。

full backup started for directory /www
Running: /usr/bin/ssh -q -x -l root target /usr/bin/rsync --server --sender --numeric-ids --perms --owner --group -D --links --hard-links --times --block-size=2048 --recursive --ignore-times . /www/
Xfer PIDs are now 30395
Read EOF: Connection reset by peer
Tried again: got 0 bytes
Done: 0 files, 0 bytes
Got fatal error during xfer (Unable to read 4 bytes)
Backup aborted (Unable to read 4 bytes)
Not saving this as a partial backup since it has fewer files than the prior one (got 0 and 0 files versus 0)

まず第一に、はい、パスワードを必要とせずにターゲットサーバーにsshできるようにsshキーを設定しています。

トラブルシューティングの過程で、コマンドラインから直接上記のsshコマンドを試しましたが、ハングします。 SSHのデバッグメッセージの最後を見ると、次のようになります。

debug1: Sending subsystem: /usr/bin/rsync --server --sender --numeric-ids --perms --owner --group -D --links --hard-links --times --block-size=2048 --recursive --ignore-times . /www/
Request for subsystem '/usr/bin/rsync --server --sender --numeric-ids --perms --owner --group -D --links --hard-links --times --block-size=2048 --recursive --ignore-times . /www/' failed on channel 0

次に、rsyncフラグを見始めました。 --server--senderを認識しませんでした。 rsyncのmanページを見ると、確かに、そこには--serverまたは--senderについて何も表示されていません。それらは何のためにありますか?

BackupPC構成を見ると、次のようになっています。

RsyncClientPath = /usr/bin/rsync
RsyncClientCmd = $sshPath -q -x -l root $Host $rsyncPath $argList+

そして、議論のために、私は以下をリストしました:

--numeric-ids
--perms
--owner
--group
-D
--links
--hard-links
--times
--block-size=2048
--recursive

--server--sender、または--ignore-timesがないことに注意してください。なぜこれらのものが追加されるのですか?これは問題の一部ですか?

5
Jake Wilson

--server --senderは、パイプ上でrsyncを実行しているときに使用されるオプションです。 rsyncサーバーはリモート側でセットアップされているため、すべてのチェックサムとデルタエンコードの魔法を実行できるため、変更されたビットのみをネットワーク経由で転送できます。これらは自動的に追加されるため、manページにはおそらく記載されておらず、通常はそれらを知ったり気にしたりする必要はありません。

から man rsync(1)

オプション--serverおよび--senderはrsyncによって内部的に使用され、通常の状況ではユーザーが入力しないでください。 rsyncコマンドのみを実行できるログインを設定する場合など、特定のシナリオでは、これらのオプションについてある程度の認識が必要になる場合があります。たとえば、rsyncディストリビューションのサポートディレクトリには、制限付きsshログインで使用できるrrsync(制限付きrsync用)という名前のサンプルスクリプトがあります。

4
Zoredache

私のマンページから:

オプション--serverおよび--senderはrsyncによって内部的に使用され、通常の状況ではユーザーが入力しないでください。 rsyncコマンドのみを実行できるログインを設定する場合など、特定のシナリオでは、これらのオプションについてある程度の認識が必要になる場合があります。たとえば、rsyncディストリビューションのサポートディレクトリには、制限付きsshログインで使用できるrrsync(制限付きrsync用)という名前のサンプルスクリプトがあります。

永続的なrsyncサーバーを実行しない場合(rsyncd.confとrsync --daemonを使用)、rsyncは接続のリモートエンドに独自のサーバーを作成して、ファイルを調べたり、ハッシュを実行したりする必要があります。

2
DerfK