複数のリモート Linux マシンがあり、各マシンで同じコマンド セットを実行するシェル スクリプトを作成する必要があります。(いくつかの sudo 操作を含む)。シェルスクリプトを使用してこれを行うにはどうすればよいですか?
たとえば、次のように ssh を使用してこれを行うことができます。
#!/bin/bash
USERNAME=someUser
HOSTS="host1 host2 host3"
SCRIPT="pwd; ls"
for HOSTNAME in ${HOSTS} ; do
ssh -l ${USERNAME} ${HOSTNAME} "${SCRIPT}"
done
リモート マシンに ssh 接続するときに、RSA 指紋認証を求めるプロンプトが表示されたときの処理方法。
StrictHostKeyChecking=no
次のオプションを sshに追加できます。
ssh -o StrictHostKeyChecking=no -l username hostname "pwd; ls"
これにより、ホスト キー チェックが無効になり、既知のホストのリストにホスト キーが自動的に追加されます。ホストを既知のホスト ファイルに追加したくない場合は、オプションを追加します-o UserKnownHostsFile=/dev/null
。
これにより、中間者攻撃に対する保護など、特定のセキュリティ チェックが無効になることに注意してください。したがって、セキュリティが重視される環境では適用しないでください。