rsyncサーバーにカスタムパラメータを送信する方法はありますか?

rsyncサーバーにカスタムパラメータを送信する方法はありますか?

クライアント用のバックアップサーバーがあります同期SSH経由。サーバーは、rsync サーバー側呼び出しをラップするカスタムシェルスクリプトを実行するように構成されます。クライアントはこれを認識せず、有効なrsyncコマンドラインを実行できます。

クライアントのいくつかのパラメータをこのシェルスクリプトに渡したいと思います。それはまるで

$ rsync -av -customarg1 value1 -customarg2 value2 file1 file2 user@server

クライアントは(pass)rsyncのように、自分が知らないパラメータを拒否します。私が考えた最善の方法は、rsyncサーバーを起動するためにスクリプトを実行する前に、スクリプトがサーバー側のコマンドラインから抽出する偽のサーバー側のファイル仕様に引数を渡すことです。つまり、このようなコマンドsshrsync -e

$ rsync -av file1 file2 user@server:some/path\;customarg1=value1\;customarg2=value2

2つのパラメータを指定し、コマンドのように動作します。

$ rsync -av file1 file2 user@server:some/path

(これは、SSHサーバーが実行するように構成された内容(カスタムシェルスクリプトなど)に関係なく、SSHを使用してsshクライアントによって実行されたコマンド(rsyncクライアントによって実行されたrsyncサーバーコマンドなど)を含む複数の環境変数を設定する$SSH_ORIGINAL_COMMANDします。

ベストアンサー1

-Mおそらくオプション(長いバージョン)が利用可能ですが、--remote-optionクライアント側のrsyncはそのオプションをチェックしないようです。-M-xxxxリモコンに転送され、-Mで削除されます-xxxx。この機能は簡単に使用でき、-M-M-xxxxクライアントとリモートでは無視されます。

rsync -av -M-M-myvar=val /tmp/test/ remote:test/

rsync を呼び出す前に、サーバーのフロントエンドが結果フラグを認識して削除すると、必要なものが得られます。

--rsync-pathさらに、これを使用してすべてのスクリプトを実行できます。リモートパラメータを接続します。例えば

rsync -a -M-myvar=val --rsync-path='echo hello >/tmp/out; ./mysync' /tmp/test/ remote:test/

リモートで次のことを実行します

echo hello >/tmp/out
./mysync --server -logDtpre.iLsfx -myvar=val . test/

おすすめ記事