LoginSignup
2
1

More than 5 years have passed since last update.

iTerm2のプロファイル、タブ名を、接続先で切り替える&その情報をjsonで管理する方法

Posted at

Macのsshターミナルとして有名なiTterm2には、プロファイルやタブ名を変えられる機能があり、
複数環境を切り替えて作業するのに便利です。

プロファイルには画面の背景色、画像や、文字色、フォントなどが設定でき、
ログイン先に応じて切り替えを行うと、接続先を間違って操作するような事故が減らせます。

使うサーバーが数台なら、手動切り替えでもいいのですが、
普段業務で扱うサーバーが30台以上あり、手動だと面倒なので自動で切り替えされるように、
後々のメンテなども考慮し、jsonで管理できるようにしました。

前提知識

プロファイルの切り替えは、こちらの記事を参考しました。
iTerm2でSSHログイン先別にプロファイルを自動的に切替えて事故防止する方法
タブ名は、このコマンドで切り替えられます。

echo -ne "\033]0;タブ名\007"

※「タブ名」部分を編集します。

jqのインストール

シェルスクリプトでjsonを扱う際に便利なコマンドをインストールします。
方法はいくつかありますが、brewを使いました。

brew install jq

.ssh/configの準備

.ssh/configで設定すると接続が楽になる方法
の「2.別名で接続」というのを参考に設定します。

プロファイルを用意

メニューからPreferences→Profilesを選択して、
新規でファイルを作成します。
ここでは、developという名前で追加。

ログイン先をjson形式で作成

HOME以下に、binというディレクトリーを作成し、その中に、
environment.jsonを作成。

environment.json
{
    "service1": {
        "profile": "develop",
        "tab_name": "サービスA"
    },
    "service2": {
        "profile": "develop",
        "tab_name": "サービスB"
    }
}

service1の部分はログインするホスト名と同じにしてください。
profileは作ったプロファイル名、tab_nameはウインドウ上部に表示したい名前を設定します。

切り替えシェルスクリプトを作成

同じHOME/bin以下に、ssh-change.shとファイル名で、以下のシェルスクリプトを作成。

ssh-change.sh
#!/bin/bash

# 環境情報読み込み
environment=`cat $HOME/bin/environment.json`
server=$@

profile=`echo $environment | jq -r '."'$server'"'.profile`
tab_name=`echo $environment | jq -r '."'$server'"'.tab_name`

# set profile
echo -ne "\033]1337;SetProfile=${profile}\a"

# タブ名変更
echo -ne "\033]0;$tab_name\007"

# ssh login
/usr/bin/ssh "$@"

# set profile(default)
echo -ne "\033]1337;SetProfile=Default\a"
# タブ名変更(default)
echo -ne "\033]0;\007"

.bash_profileに追記

プロファイルを作成し、以下の2ファイルが出来たら、
・HOME/bin/environment.json
・HOME/bin/ssh-change.sh

HOME/.bash_profileの最後に、

alias ssh='~/bin/ssh-change.sh'

を追記して終わりです。

あとは、ターミナル立ち上げ直して、

ssh service1

とすると、service1にログインし、
developというプロファイルで、「サービスA」というタブ名が付いた状態になります。

この方法のメリット

前提知識の、ログインするホスト毎にプロファイルを用意する方法にタブ名切り替えのコマンドを追記する方法だと、
タブ名 = ホスト名になってしまい、個人的にわかりにいくタブ名になってしまいます。、
jsonで管理すれば、プロファイルは、開発、ステージ、本番の3種類だけ作成し、
タブ名はサーバーの数分切り替えたい場合などといったことが出来ます。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1