カテゴリー ‘ サーバー ’
sshの接続切れが面倒な人は、mosh(Mobile Shell)を使った方がいい
こんにちは、@9ensanです。
コンソールからサーバーへの接続に何を使っていますか?
大体の人はsshで接続していると思います。
sshで一番煩わしいのが、移動や、スリープからの復帰時などでネットワークが切れた時に、サーバーとの接続が切れてしまう事、切れるたびに再接続の必要がいるわけで…、移動が頻繁な人にとってはとても面倒です。
この面倒な作業をやってくれるのが「mosh(Mobile Shell)」です。
moshを利用して接続していると、スリープ時などに発生するネットワーク切れてsshが切断されても、次回ネットワークが繋がった時に自動的に接続を復帰してくれます。
また認証はSSHの機能で行ってくれるので、今までSSHを使っていた場合は、新たにユーザー認証の設定は必要ありません。
こんな便利なもの使わない理由がないので使ってみたら、本当にサーバーとの接続が永続化されるのでとても便利です。
この便利なmoshをどうやって設定すればいいのか解説していきます。
それではインストール方法から解説していきます。
git、svnのdiffで改行コードの違いを無視する方法
こんばんは、@9ensanです。
複数人で開発をしていると、WindowsとMacが混在していてSubversionやGitの中の改行コードが統一されない事があると思います。
この時に改行コードの違いを無視してdiffを表示する方法です。
Gitの場合
git diff -w
Subversionの場合
svn diff -x --ignore-eol-style
Diffの場合
diff --strip-trailing-cr
これで、それぞれ改行コードを無視して処理してくれます。
本当は、改行コード混ぜるなって言いたくなるけども・・・
SSH経由でMySQLを接続する方法(SSHポートフォワード)
こんばんは、さすがに眠くなってきた@9ensanです。
サーバー環境にMySQLは入っているがphpMyAdminをインストールしたくないし、危険だからMySQLのポートなんか開放したくないと言う時に便利なのがSSHのポートフォワード機能。
何が便利なのかというとSSHのポートフォワード機能を利用すると、ローカルの任意のポートに来たデータを、サーバー側の指定したポートへ転送することが可能です。
要するにサーバー側にSSHでログイン出来る環境さえあればクライアントからSSHを経由してMySQLに直接つなぐ事が出来るということです。
ですので、この機能を使えば「Sequel Pro」のようなGUIベースのMySQLクライアントアプリを利用して、サーバーのMySQLを操作する事も可能なのです。
(こんな事しなくても、Sequel Proには元々ポートフォワードが簡単に出来る機能がついてますが…。)
どのようにするかというと
ssh -i ~/.ssh/id_dsa test@test.com -p 22 -g -N -f -L 12345:localhost:3306
これで、ローカルの12345番ポートへの通信がSSHを介してtest.comの3306番ポートに転送されるようになります。
なので、
mysql -uroot -p -h 127.0.0.1 –port=12345
このようにMySQLで接続するとサーバ側のMySQLに接続されます。上手く接続されていれば成功です。
SSHオプションについて
もう少し、SSHコマンドのオプションを説明すると
-i | SSHの鍵のパスを指定 |
-p | SSH接続時のポート番号 |
-g | 他のマシンから転送ポートへのアクセスを許可する |
-N | ポート転送を行う |
-f | バックグラウンドに移行する |
-L | 転送するポート:ssh接続先から見たアドレス:転送先のポート |
ちなみに、「-L」はローカル側の任意のポートをssh接続側へ転送するオプションでしたが
「-R」を使用すると逆にサーバ側の任意のポートをローカル側の特定のポートに転送することが可能になります。
これもよく使うのですが忘れるので備忘録がてらに書きました。