rsyncドライランを実行し、確認してから、1つのコマンドで実際に実行することは可能ですか(パスワードを再度指定する必要はありません)?

ルーカス

今、自宅で仕事をしているときは、自宅のコンピューターでいくつかの作業を行い(vnc接続が遅すぎるため)、仕事用のコンピューターでいくつかの作業を行います(そこでのみ可能であるため)。

したがって、両方のコンピューターで作業を保持するフォルダー(およびそのすべての内容)のコピーがあります。私はrsyncを使用してそれらを最新の状態に保ちます(ただし、ssh-gatewayサーバーを通過するssh-tunnel)。私はしばしば各方向に更新しなければならないので、それは時々混乱することがあります。そのため、他のコンピューターのファイルを誤って変更したために、一方のコンピューターで新しい作業を上書きしないようにするため、または他の競合の可能性を回避するために、ドライランを実行するのが好きです。

ただし、これは、コマンドを2回実行する必要があることを意味します。1回は-nオプションあり、もう1回オプションなしです。スクリプトを書くことで簡単に回避できますが、問題は、リモート接続するためにパスワードを2回入力する必要があることも意味します。

パスワードを1回入力するだけで、ドライランを実行し、「Enter」または「y」などを押して確認を待つ(またはキャンセルする)コマンドを1つだけ実行できるようにしたいと思います。次に、実際の同期を行います。これは可能ですか?


さらに明確にするために編集します。

私が正確にやろうとしていることは次のとおりです。最初に、ゲートウェイサーバーを介してsshトンネルを確立します:(ssh -N -L 2222:workcomputer:22 me@gatewayserverのパスワードを要求されますme@gatewayserver)。次にrsync -ruve "ssh -p 2222" me@localhost:~/folder ~/folder、パスワードを要求するパスワードとme@workcomputer、何度も入力する必要のないパスワードを使用します

ここに

最終マシンへの最初のssh接続を実行、ゲートウェイ-J。でジャンプホストとして指定することにより、ゲートウェイを経由する接続をセットアップできます追加-N -Mすると、この接続が開いたままになり、最終マシンへの将来のsshコマンドが最初の接続で多重化されます。

~/.ssh/configファイルの先頭に置きます:

ControlPath ~/.ssh/master-%r@%h:%p

次に、次のコマンドで1回接続します。

$ ssh -J me@gatewayserver -N -M me@workcomputer

ゲートウェイへのパスワード、次にワークコンピューターへのパスワードの入力を求められるはずです。接続すると、パスワードなしでコマンドを実行できます。

$ ssh me@workcomputer hostname
$ rsync -nv myfile me@workcomputer:/tmp

また-v、最初のsshに追加して、何が起こるかを確認することもできます。-v冗長な出力がで作られたソケットが表示されます~/.ssh

debug1: setting up multiplex master socket
debug1: channel 0: new [/home/me/.ssh/master-me@workcomputer:22]

これで、同じ宛先に別のsshが必要な場合、次の既存のsshが使用されます。

$ ssh me@workcomputer pwd

詳細な出力を提供します。

debug1: multiplexing control connection
debug1: channel 1: new [mux-control]
debug1: channel 2: new [client-session]
debug1: Sending command: pwd
debug1: channel 2: free: client-session, nchannels 3
debug1: channel 1: free: mux-control, nchannels 2

同じことがrsyncコマンドにも当てはまります。

$ rsync -nv myfile me@workcomputer:/tmp
sent 43 bytes  received 19 bytes  124.00 bytes/sec
total size is 173  speedup is 2.79 (DRY RUN)

出力:

debug1: multiplexing control connection
...
debug1: Sending command: rsync --server -vne.LsfxC . /tmp

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

Related 関連記事

ホットタグ

アーカイブ