ページ

2013-02-21

Mosh(mobile shell)を導入して「Write failed: Broken pipe」で泣かないようにする




moshはsshのセッションをよしなに管理してくれるナイスガイ(sshのラッパー)です。

今更導入したの… とか言わない!



まずはその挙動を紹介します。

Write failed: Broken pipe 〜 切断 それは突然に 〜


これからご覧に入れます内容をご紹介いたします。

まず、sshとmoshで鯖に接続し、wifiを切断後、iPhoneのテザリングでインターネット接続を復帰します。

sshの方はインターネット接続が復帰した後も、sshのセッションは回復しませんが、moshの方はセッションが自動的に回復します。

実際にやってみた


tmuxで画面を左右に分割し、左は普通にsshで、右はmoshを使ってサーバに接続しています。

使用したコマンドは
ssh側 ssh vps0
mosh側 mosh vps0
です。

sshのconfigにvps0として自分のサーバ情報が書かれています。

接続後はこんな感じです。
繋がってる!!って感じがしてますね!



両方のセッションで同時にping 8.8.8.8を実行します(tmuxのset-option synchronize-panes onを使っています)。



ここでMac Book Airのwifiを切ります。

moshの方は切断されていることを示すメッセージが表示されています。
sshの方は何のメッセージも出ずに、ただただ操作が出来なくなっています。



そしてiPhoneのテザリングでインターネット接続を回復します。

moshの方は何事も無かったかのように、セッションが回復しpingの結果がひたすら出続けています。

一方sshの方は悲しきかな… 「Write failed: Broken pipe」が出ています…
こいつが出ると遠い目をしたくなりますね…




そんな感じでmoshを使うと何かと良いです。
コマンドも今までsshと打っていた所をmoshに置き換えるだけなので、特に覚えることはありません。

インスコ


macでは
brew install mobile-shell

centosでは
sudo yum --enablerepo=epel install mosh
epelリポジトリは追加しといて下さい.

その他環境の方は公式サイトを参照して下さい。



まとめ


パソコンをスタンバイから復旧させた時も普通に再接続されます。
IPアドレスが変わっても問題ないです。

その他色々快適に使用出来る機能が備わっています。
使えば分かる!!!!


1 件のコメント:

  1. 昨日、私はMOSHを使ってみた。本当にすごいです!

    返信削除