blog

tmux活用術②

Linux講座

2015.07.08

tmux活用術②

さて、tmuxコマンドの続きです。

前回はtmuxの大まかな操作方法の勉強と構築すべき環境を決めました。

これは自分のサーバだけでなく、生徒さん側のサーバにも設定して貰う必要があります。
しかし殆どの生徒さんにはそこまでの技術や知識はありません…
ですので【シェルスクリプトを用意して簡単に導入出来る環境作り】
が必要不可欠になる訳です。

まずは生徒さんに使っていただくスクリプト作り。

スクリプトの引数に自分と講師のサーバのIPを入力すれば
それぞれSSHログインをしてセッションを作成するようなブツを作ります。
#!/bin/bash

session=engineer

## セッションを作成
tmux new-session -d -n basic -s $session

## 各ホストにsshログインする
# 最初の1台はsshするだけ
tmux send-keys “ssh tmux@$1” C-m
shift

# 残りはペインを作成してからssh
for i in $*;do
  tmux split-window
  tmux select-layout tiled
  tmux send-keys “ssh tmux@$i” C-m
done

## paneの同期モードを設定
tmux set-window-option synchronize-panes off

## セッションにアタッチ
tmux attach-session -t $session
あ、sshログインのユーザにtmuxと指定していますが
講師、生徒の両方のサーバに『tmux』というユーザを作成して貰います。
そしてパスワードも『tmux』等と共通のパスワードにしておきます。
その様にする事で相手にrootのパスワードを教えずに済むので安心ですね。
そして次は、生徒さん側のtmuxユーザがログイン時に読み込むスクリプト
#!/bin/bash

tmux new -s `hostname`
これにより、上記のスクリプトを使用して自分のサーバにSSHログインしたら
自動的に自分のホストネームで新しいセッションを作成する事が出来ますね。
(講師側はそのセッションへログインして生徒側の操作を確認できるようになります)
スクリプトを作成したら、tmuxユーザのホームディレクトリにある.bash_profile等に
ログインしたら読み込むように追記しておきましょう。
そうしたら次は講師側のスクリプトです。
生徒側のサーバから講師のサーバへSSHログインをしたら自動的に指定したセッションへ
アタッチするスクリプトを作成します。

#!/bin/bash

tmux a -t engineer -r
これで、ログインすると同時に講師が作成しておいたセッションへログインするようになります。
オプションで【-r】を付けているので、生徒からは書き込みが出来なくなります。

このスクリプトを作成したら講師側のtmuxユーザの.bash_profileへ追記しておきましょう。

あと、これはスクリプト化してもしなくてもって感じですが
新規セッションを作るスクリプトも作成しておくと楽なのかな?

とりあえず、最低限の設定はこんな感じで。
さて、上手く行くでしょうか…

二つのサーバを用意して上記の手順で設定してみました。
まずは講師側のサーバでセッションを作成しておきます。
その後に生徒側のサーバでスクリプトの実行。
自分と講師のIPを引数に指定して…

ブログ3

実行してみましょう。

ブログ

はい!上手く行きました!

上半分は自分のサーバです。
下半分は講師側のサーバです。

講師側のサーバで打った内容がきちんと反映されてます。

因みに講師側のサーバはこうなってます↓
 

ブログ2

これで、講師がたたいているコマンドの内容を確認しながら授業が受けられますねー。

一応の仕組みは出来上がったのですが、まだ使い勝手が良くないのでこれから整えて行きたいと思います。

 

SHARE

最新記事

無料相談する

INTERNOUS,inc. All rights reserved.