Skip to content

Instantly share code, notes, and snippets.

@ka2n
Last active September 23, 2017 10:01
Show Gist options
  • Save ka2n/77695e7f4dd423b8ecde8307664432e7 to your computer and use it in GitHub Desktop.
Save ka2n/77695e7f4dd423b8ecde8307664432e7 to your computer and use it in GitHub Desktop.
tmuxでサーバーの分だけ画面を分割してそれぞれ接続するシェルスクリプト
#!/bin/sh
set -eu
# サーバのホスト名一覧
SERVERS=(
"tnt1"
"tnt2"
)
# サーバ接続用コマンド
# {}がSERVERSで定義したホスト名に置き換わります。
# ログイン後に実行するコマンドがあれば{}に続けて入力する
#
# 例:
# git pullを行う場合:
#
# SSH_COMMAND="ssh {} git pull"
#
# 共通のパラメーターがあればここに書いてもよし
#
# SSH_COMMAND="ssh -i ~/.ssh/tnt_server {} git fetch && git reset --hard origin/master && docker-compose up -d"
#
SSH_COMMAND="ssh {} top"
# ウィンドウの並べ方
# even-vertical, even-horizontal, tiledから選ぶのがおすすめ
TMUX_LAYOUT=tiled
# 画面を開く
WIN=tnt
tmux new-window -n $WIN "${SSH_COMMAND/\{\}/${SERVERS[0]}}"
for i in ${!SERVERS[@]}; do
if [ $i -eq 0 ]; then continue; fi
tmux split-window "${SSH_COMMAND/\{\}/${SERVERS[$i]}}"
tmux select-layout $TMUX_LAYOUT
done
# コマンドの同期が不要であればコメントアウト
tmux set-window-option -t tnt synchronize-panes on
@ka2n
Copy link
Author

ka2n commented Sep 23, 2017

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment