12
13

More than 5 years have passed since last update.

GNU Screen で複数サーバに一発でssh接続

Last updated at Posted at 2016-02-09

以前、Terminalで複数サーバに一発でssh接続 という投稿をしましたが、今回はそのGNU Screen版です。

やりたいこと

  • コマンド1つで、Screenを起動し、画面を4分割し、さらにそれぞれの画面で別々のサーバに接続した状態にさせます。

手順

以下のようなScreen用のスクリプトを記述します。

  • ^Mという記載がありますが、これは特殊文字(CR)で、Vim上から<C-v><C-m>(Control-vの後にControl-m)と入力すれば、打込めます。(通常のコピペでは無理?)
  • ^Mを省略したとしても、下記のスクリプトは動きます。ただし、最後のコマンドの部分は入力どまりで実行はされないので、手動で実行する必要があります。
~/.screenrc_init
# もともとの起動ファイルを読み込む
source ~/.screenrc

# 4つのウィンドウをタイトル付きで立ち上げる
screen -t local 0
screen -t server1 1
screen -t server2 2
screen -t server3 3
# 画面を4分割し、それぞれにウィンドウを配置
split -v
split
focus
select 1
focus
split
select 2
focus
select 3
focus
select 0
# 各ウィンドウで別々のコマンドを実行
stuff 'date^M'
focus
stuff 'ssh server001^M'
focus
stuff 'ssh server002^M'
focus
stuff 'ssh server003^M'
  • そして、シェル上で以下のように実行すれば、画面4分割されたScreenが起動するかと思います。
$ screen -c ~/.screenrc_init
12
13
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
12
13