̃Gg[͂ĂȃubN}[Nɒlj

Unix :: 複数のリモートホストに次々にログインして「sudo権限」がないと実行できないコマンドを実行する



host{1..10}.example.com に順次ログインして、sudo less /root/.bashrc を実行するサンプル

1) 前準備として、パスワードを環境変数「$pw」にセットしておく

% read pw
% hoge ← リモートホストの sudo を実行できるパスワード入力

入力が終わったら、すかさず「Ctrl-L」して画面をcreanupするのが吉。


2) for を使って host1 から host10 までループさせる

% for i in `seq 1 10`; do
echo "===== host$i.example.com =====";
echo $pw | ssh host$i.example.com 'sudo -S less /root/.bashrc'
done

標準入力からパスワードの入力を受け付ける「-S オプション」が肝。




unix/command_operation/read_echo_for_ssh.txt