2014年3月15日土曜日

tmux起動時にsshで自動でログインしログイン後にコマンドを実行する方法 その2

前回、おんなじようなタイトルで起動時にsshできる方法をご紹介しました
今回はその第二弾となります

■スクリプト
#!/bin/sh
name="session_name"
password="Enter your password"
ip_list=(ip1 ip2 host1 host2)

tmux new-session -s ${name} -d

for i in ${ip_list[@]}
do
  tmux new-window -t ${name} -n ${i}
  tmux send-keys -t ${i}.0 "ssh ${i}" C-m
  sleep 5
  tmux send-keys -t ${i}.0 "${password}" C-m
  echo "ssh ${i}"
done

■説明
  • 今回は1つ以上、tmuxセッションがない状態でも実行できるスクリプトです
  • name に作成するセッション名を設定します
  • password にsshをするホストのパスワードを設定します
  • ケースとして同一パスワードを設定している複数ホストを想定しているのでパスワードが異なる複数のサーバの場合は修正が必要になります
  • forループを使用して ip_list で指定したIPアドレスまたはホストに対してパスワードのsshログインを順番に実行していきます
  • sshログインをするホストごとに新しいタブを作成します
  • 異なるパスワードの複数ホストに対応する方法としては ip_list の他に password_list という配列を作成してforループの中でpassword_listの中からも順次値を取得する感じにするのがいいと思います

0 件のコメント:

コメントを投稿