どうも。もふもふ部の部長、原田敦です。
最近、管理しているサーバが増えてきて、だいぶ時間を圧迫するようになってきたので、ちょっとばかり効率化を目指していまさらながらscreenコマンドをためしてみることに。
環境
サーバ:CentOS 6.3
クライアント:Mac OS X Lion
設定ファースト!
サーバにsshして、いつものようにインストールする。
1 |
$ sudo yum install screen |
必ず最初に設定ファイルを編集しましょう。デフォルトはちょっとつらいです。特にcaptionの設定を入れていないと開いている画面がわからなくなって露頭に迷います。
1 2 3 4 5 6 7 8 9 10 11 12 |
$ vim .screenrc # エンコーディングの設定 defkanji utf-8 defencoding utf-8 encoding utf-8 utf-8 # エスケープキーバインドを変更 escape ^j^j # 画面下部に仮想端末のタブみたいのを表示 caption always "%{= wb} %-w%{=bu dr}%n %t%{-}%+w %= %{=b wk} [%l] %{=b wb}%y/%m/%d(%D) %{=b wm}%c" # 仮想端末のリスト表示するキーバインド bind l windowlist |
他にも設定項目がたくさんありますが、解説はWEBにたくさんあるのでそちらを参照されたし。
ログファイルをtailしながら作業したい
sshで接続した先でログファイルをtailしながら設定ファイルを編集とかしたいれす…。terminalのタブ2つで出来ますが、2度もsshするのはめんどい。
まずはscreenを起動。新しいプロンプトが開始されましたね!
1 |
$ screen |
logviewという名前をつけてもう一個立ち上げます。こっちの画面でtailします。
1 |
$ screen -t logview |
1 2 |
# 仮にsshの設定をいじっている感じで、secureログをtail $ sudo tail -f /var/log/secure |
0 bashの画面に戻ります。切り替えたい画面の数字を入力すれば自由に行き来できます。
control + j, 0
仮にsshdを再起動する感じ。control + j, 1でtailを確認。意図したとおりに動いてますね。
1 |
$ sudo /etc/init.d/sshd restart |
ひとまずこれで目的達成だけど、やっぱりscreenで画面分割したいですよね。
control + j, S で分割
control + j, TAB でウィンドウ移動
control + j, Q で分割解除
分割した直後は何もアタッチされていない状態なので、ウィンドウを移動してcontrol + j, 1(任意の数字)で任意のウィンドウをアタッチします。
やったぁ!これでサーバ作業がちょっとだけ幸せになりました!
おまけ
control + j, l : ウィンドウリストを見る(.screenrcにbind l windowlistを設定が必要)

原田 敦

最新記事 by 原田 敦 (全て見る)
- Rails Engineでブログ機能追加するgemを作る - 2015年3月15日
- WEBエンジニア一人だけでサービスを作りきる方法-夫婦のための自動ごはん予定お知らせサービス「GoHaaan」制作でやったこと - 2015年3月7日
- CentOS6でMariaDBのDynamic Columnsを試してみた - 2015年2月28日