いますぐ実践! Linuxシステム管理

いますぐ実践! Linux システム管理 / Vol.266 / 読者数:2726名

おひさしぶりです! うすだです!

まぐまぐさんから、最近発行されていない旨のメールをいただいてしまうくらい、 ごぶさたしてしまいました。

もともと、作業の見積りや計画が苦手で、ざっくりした目安だけ立てた後は、 睡眠時間を削ったり、睡眠時間を削ったり、しめ切りを少し延ばしてもらったり、 睡眠時間を削ることで、なんとか乗り切ってきました。

しかし、そんな小手先の方法で乗りきれるのは、作業者が個人の場合や、 比較的短期間の作業の場合に限られるようです。

というわけで、めらめらと燃え盛る炎の中、メルマガを書いております。

いえ、すみません、ネタを考える余裕も、ガッツリ書くことも、炎の中にいる以上、 あまりできません。
また、正直に申しますと、他にも溜め込んだいくつかのことを、 この年末年始にやりとげる必要があります。

というわけで、大変申し訳ありませんが、 今回のお題は投げやりな感じになっております。 キープアライブ号だと思っていただけますと幸いです。

よ、弱ってなんかいませんよ! …今回は、若干はりきってまいりますね。

今回のお題 - SSHの接続を維持する (レベル:初級)

システム管理を生業とされている方なら、24時間365日、フルに対応するため、 遠隔のサーバにSSHでログインして作業する、ということが、 いつなんどきも必要になっているのではないかと思います。

ただ、SSHでログインしても、何も作業していないまま放置していると、 通信できなくなっていることがあります。

どうやら、一定時間以上何もデータが流れないと、切断されてしまうようです。 その原因の大半は、サーバのsshdの設定か、ルータのNAPTの設定によるものです。

その設定を変える権限が自分にあるなら、変えるだけですが、 だいたいにおいてそんな権限は持ちあわせていないと思います。

じゃあ、一定期間ごとに、データを流せばいいわけですね。
なにも作業しないときに、こんなのを実行してデータを流す、 という方法はいかがでしょうか。

  $ while [ 1 ]; do
  > date
  > sleep 60
  > done

1分ごとにdateコマンドを実行します。延々と。永久に。

日付だけだとサーバの区別ができないよ、という貴兄のために、 hostnameコマンドも入れてみました。

  $ while [ 1 ]; do
  > echo `hostname` : `date`
  > sleep 60
  > done

なんでしたら、スクリプトにしておいてもいいですね。
これで、SSHの接続が切られなくなりました。

えーと、そうですね、なんだかきれいではありませんね。

実は、SSHの設定で、接続を切られないようにする方法が、あります。

設定ファイル「~/.ssh/config」に、「ServerAliveInterval」を設定しておくと、 その秒数以上データが流れないとき、サーバにメッセージを送信してくれます。

  ServerAliveInterval 秒数

たった、それだけ、です。

実際に試してみると、10分強で接続を切られていたのが、切られなくなりました。

えーと、特に見せるものもないので、以上です。

おわりに

以上、SSHの接続を維持する方法を、素早くご紹介しました。

実は、メルマガ自体のキープアライブと、SSHのキープアライブをかけてみたのですが、 お気づきでしたでしょうか。

…それはさておき、さも知っているような書き方をしていますが、実は、 ほんの数時間前まで、while 文で date コマンドを永久実行する方法で、 私はしのいでいました。

いくつになっても、新しいことを知るのは、いいことですね。(遠い目)

宿題の答え

前回の宿題は、

  CSVファイルの特定のカラムの値を取り出してみましょう。

でした。

前回発行した直後、複数の方から、CSVファイルの扱いはそんなに簡単なものではない、 という旨のご指摘をいただきました。

はい、たとえば、ダブルクォートなどの扱いですね。そのへんは、 簡単なものしか対応しないものと、脳内で勝手に判断していました。
たいへん失礼しました。

また、Ruby や Python などの言語には、CSVライブラリがありますので、 そちらを使ったほうが確実に処理できると思います。

というのもふまえつつ、あくまでも、 現場でのオンデマンドな対応を柔軟に行うための事前の練習をしているのだ、 と無理矢理思っていただいた上で、宿題の答えをお送りしたいと思います。

さて、各行の特定の部分を取り出すといえば、「cut」コマンドです。
「-f」オプションで列を、「-d」オプションで区切り文字を指定します。

たとえば、こんなCSVファイル(test.csv)があったとします。

1,2,3,4,5
6,7,8,9,10
" ",aaa,zzz,ccc,"A A"
a,b,c
11,12,13,14,15

これの3番目のカラムの値を取り出すには、以下のように実行します。

  $ cut -d, -f3 test.csv
  3
  8
  zzz
  c
  13

ちなみに、指定したデータがない場合は、空欄となります。

  $ cut -d, -f5 test.csv
  5
  10
  "A A"
  
  15

あ、あれ? なんだかあっさりできてしまったようです。

もし余力のある貴兄は、ダブルクォート内の , などの対応にも、 トライしてみてください。

今回の宿題

今回の宿題は、

  SSHの接続を切られる具体的な原因を、調べてみましょう。

です。

今回のお題の中で、さらっと述べましたが、もう少し具体的に調べてみると、 より理解が深まるのではないでしょうか。

というわけで、調べてみましょう。
身近にあるサーバやルータがそうだと、直接調べられますね。

あとがき

朝まで仕事をして(間にちょこっと寝ましたが)、その勢いで書きました。

この後、家族の白い目を気にせず寝るか、風呂掃除をするか、迷いつつ、 筆を置きたいと思います。

ああ、いろいろあった1年でした。

みなさんには、このようなことにならないよう計画的に作業することを、 ぜひお勧めします。

…いや、お勧めっていいませんよね、常識ですよね…。

 

今回も、ここまで読んでいただき、誠にありがとうございました。
い、いまの状況を脱したら、ちゃんとした次号をお送りします!

 

「いますぐ実践! Linux システム管理」はこちらです。
メルマガの解除、バックナンバーなども、以下からどうぞ。
http://www.usupi.org/sysad/ (まぐまぐ ID:149633)

その他、作者に関するページは、概ね以下にございます。
http://www.usupi.org/kuri/ (まぐまぐ ID:126454)
http://usupi.seesaa.net/ (栗日記ブログ)
http://twitter.com/kuriking/ (twitter)
http://facebook.com/kuriking3 (facebook)


[バックナンバーのトップへ] [Linux システム管理のトップへ]

トップ

バックナンバー
    [日付順] [目的別]

プロフィール

▼ リンク

独学Linux
Linuxデスクトップ環境に関する情報が満載です。 メルマガもありますよ。
Server World
CentOS 6をサーバとしたときの設定例が、これでもかというくらいたくさん載っています。 CentOS以外のディストリビューション(Fedora, Ubuntu)も充実しています。
LINUXで自宅サーバーを構築・導入(Fedora9)
Fedora9のインストールの仕方から管理方法まで、詳しく載っています。 SearchManには情報がもりだくさんです。
マロンくん.NET
〜サーバ管理者への道〜
Linuxをサーバとして使用するための、いろいろな設定方法が載っています。 マロンくんもかわいいです。 なんといっても、マロンくんという名前がいいですね!!
日経Linux
今や数少なくなってしまったLinuxの雑誌。ニュースやガイドもあります。
Linux Square − @IT
@ITが提供する、Linux の情報が満載。 載っていない設定方法はないんじゃないでしょうか。
gihyo.jp…技術評論社
Linuxに限らず様々な技術情報が満載のサイト。 SoftwareDesign誌も、 ソフトウェア技術者は必見です。
SourceForge.JP Magazine
Linux に限らず、オープンソース関連の記事が網羅されています。
ITmediaエンタープライズ:Linux Tips 一覧
Tips というより FAQ 集でしょうか。わからないことがあれば覗きましょう。
IBM developerWorks : Linux
開発者向けですが、勉強になりますよ。
Yahoo!ニュース - Linux
Yahoo!のLinuxに関するニュース一覧です。
栗日記
システム管理とかと全然関係ありませんが、毎日栗の絵を描いています。
システム管理につかれちゃったとき、癒されたいときに、ご覧ください。:-)
WEB RANKING - PC関連
ランキングに参加してみました。押してやってください。

▼ 作ってみました

Add to Google

▼ せんでん




▼ 最近読んだ本

▼ 気に入ってる本