RSS

sshで複数のコマンドを実行

14 3月

シェルでループとか使って複数のサーバにSSH接続した後に複数のコマンドを実行してもらいたい時のお話。

testサーバからパラメタでもらったホスト名のサーバに対してSSH接続して
move.shとbuy.shを実行したいの。

ssh 【ユーザ名】@【サーバー名】 "コマンド1 ; コマンド2" 

でssh接続後にコマンドを順番に実行してくれる。

Ex)
testサーバから以下のサーバにはSSHでパスワードなし接続できるように設定済み
・dogサーバ
・pigサーバ
・goatサーバ

./loopSsh dog pig goat

————–

loopSsh.sh

targetsv=("$@")

for i in `seq 1 $#`
do
    if [ -n "${targetsv[$i-1]}" ]; then
        echo "${targetsv[$i-1]}にSSHで接続するよ!! " >&2
        ssh 【ユーザ名】@${targetsv[$i-1]} "/usr/local/tmp/move.sh; /usr/local/tmp/buy.sh"
    fi
done

SSHで dogサーバ pigサーバ goatサーバの順番に接続して
/usr/local/tmp/move.sh
/usr/local/tmp/buy.sh
の順番でコマンドを実行してくれてる。

広告
 
コメントする

投稿者: : 2015/03/14 投稿先 Linux

 

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

 
%d人のブロガーが「いいね」をつけました。