あるサーバーから別のサーバーにファイルをコピーする方法

あるサーバーから別のサーバーにファイルをコピーする方法

シェルスクリプトを使用して、2つの異なるサーバー上のファイルをコピーする必要があります。 scpユーザー名、IPアドレス、フォルダの宛先パスを試しました。

答え1

上記のようにここ小さなシェルスクリプトを書くことができます。

for dest in $(<destinations.txt); do
  scp /path/to/the/file_to_copy.txt ${dest}:/remote/path/
done

destinations.txt作成する文書を作成するだけです。すべてのラインで目的地user@hostは次のとおりです。

[email protected]
[email protected]

ターゲットパス(/remote/path/)はスクリプトにハードコードされているため、パスは両方のサーバーに存在する必要があります。各宛先の専用パスを設定するには、スクリプトを編集し、各エントリ:/remote/path/に対してそれらを削除して設定できますdestinations.txt

そうでなければ見ることができますパラレル scp

答え2

RSAを使用すると、パスワードを要求せずにファイルを送信するスクリプトを作成でき、スクリプトにパスワードを入力する必要はありません。コンピュータで実行:

ssh-keygen -t rsa -b 4096 -C "[email protected]"
ssh-copy-id loginname@server1Ip
ssh-copy-id loginname@server2Ip

スクリプトから:

scp file loginname@server1IP
scp file loginname@server2IP

ログイン名とローカルユーザー名が同じ場合は、loginname @部分を省略できます。

関連情報