出先や移動中にsshで作業する場合にはscreenを使う

 お名前.com VPSとかのVPSを仕事やら個人やらで使っていると管理にssh使うよね。

 Windows化していればRDPでの管理とかになるけど、その場合途中切断してもセッションが生き残ってて、再接続するとコンティニューできるけど、ssh管理の場合に途中で通信が切れるとプロセスが止まっちゃって処理が中途半端になったり色々不便。

 例えば、出先でsshでコマンド実行したけどやたら時間かかっちゃってなかなか離れられないとか、スマホとかで移動中に作業していて通信が途切れちゃって作業が完了できないとかで困る。

 で、そんなときはscreenを使うと便利。

 RedHat系ならyum install screenで入れられる。

 こいつは、マルチスクリーンのサービスとでもいうか、まぁ、コマンドラインでscreenと実行すると、そのままシェルが沸いてくるんだけど、シェルの管理がターミナルじゃなくてサービス側にあるのでターミナルが終了してもスクリーンが生き続ける。
 screen上で実行しておけば、sshを切断しても処理継続したりスリープさせておいたり出来る。 なので、出先のsshで繋いだときに
screen
mysqldump …
C+a d
みたいな動きをしておくと、screenで新規スクリーンを立てて、そこで時間のかかる処理(この場合mysqldump)をして、C+a dのコードでスクリーンを動かしたまま離れられる。 手動でデタッチせずにsshが切れるとデタッチ扱いになる。

 再度ssh等で接続した時、
screen -ls
すると、生きているスクリーン一覧が見られるので、必要なスクリーン名に対して
screen -r 1234.my.server
みたいに実行すると、そのスクリーンに再接続できる。

 スクリーンを終了する場合は、C+dのコード送信かスクリーン上のシェルをexitすればOK。

 接続したら毎回screenを実行するようにしておけば、不意な切断などでも処理継続させられるので、是非活用したい。

(2559)


カテゴリー: LAMP[Linux, Apache, MySQL, PHP], サーバ設定   パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です