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

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


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

※ こんばんは…じゃなくて,おはようございます,うすだです.
   まぐまぐの新システム移行にともない,配送が遅れました.
   申し訳ありません.朝,あわてて配送しております.

この間,誕生日を迎えまして,とうとう35歳になってしまいました.
35歳というと,転職しづらくなる境目の年齢ですね.
私は,今まで,プロジェクト管理とか,誰かを指導したりとか,ほとんど経験したことがありません. 今,会社をクビになったらやばいのではないだろうか,という不安が, いまさらながらに出てきました.

…いやいや,そんな後向きではいけませんよね.
根拠がなくても,前向きに考えるべきだよな,と思う今日この頃です.

それでは,今日もはりきってまいりましょう!

今週のお題 - うそうそWWWサーバを作る

今回は,xinetd あるいは inetd 経由で動作する,決まりきったページを返すだけの, WWWサーバを作ってみたいと思います.

さて,これのどこがシステム管理なのでしょうか…

たとえば,プロキシサーバを別のマシンに移行して今は動いてないとか, WWWサーバじゃないのにときどきHTTPにアクセスがある,という場合に, ほんものはこちらですよ的なページを返してあげることで,お互いのためになる, という意味では,システム管理と言えると思います.
# Apache 動かせばいいじゃん,とか言うのはなしってことで….

そうでなくとも,xinetd や inetd 経由で動くものが簡単に作れるのだ, という勉強だと思ってください.はい,そう思ってください.
# そう,何事も,前向きに考えることが必要だと思うわけですね.:-)

さあ,言い訳はこのくらいにして,本題に入ります.
今回は,うそうそWWWサーバのパスが /usr/local/sbin/usowebd, 使用するポートが HTTP(TCP の80番)だとします.

Fedora や Redhat など,xinetd が動作している場合は,以下の内容のファイルを, /etc/xinetd.d/usoweb として保存してください.

  # default: off
  # description: The uso-uso www server.
  service http
  {
        disable = yes
        flags           = REUSE
        socket_type     = stream        
        protocol        = tcp
        wait            = no
        user            = root
        server          = /usr/local/sbin/usowebd
  }

そして,chkconfig コマンドを以下のように実行し,有効にします.

  # chkconfig usoweb on

Vine など,xinetd ではなく inetd の場合は,/etc/inetd.conf に以下の 1行を追加します.追加する場所は,どこでもよいです.

  http  stream  tcp  nowait  root  /usr/local/sbin/usowebd usowebd

そして,inetd に SIGHUP シグナルを送って,有効にします.

  # kill -HUP `cat /var/run/inetd.pid`

はい,これで,HTTP につなぎにいくと, /usr/local/sbin/usowebd が起動されることになります.
肝心の,/usr/local/sbin/usowebd の中身は,以下の通りです.

  #!/usr/bin/perl
  my $SERVER_NAME  = "usouso-web server/0.1";
  my $CONTENT_HTML = "/usr/local/etc/usoweb.html";

  while(<>) {
	last if /^\s*$/;
  }

  if(!open(HTML, $CONTENT_HTML)) {
	print "HTTP/1.0 200 OK\r\n";
	print "Content-Type: text/plain\r\n";
	print "Server: $SERVER_NAME\r\n\r\nuum...";
	exit 1;
  }

  print "HTTP/1.1 200 OK\r\n";
  print "Content-Type: text/html\r\n";
  print "Connection: close\r\n";
  print "Server: $SERVER_NAME\r\n\r\n";

  while() {
	chop;
	print "$_\r\n";
  }
  close HTML;

最初の while 文で相手の言い分をスルーし,/usr/local/etc/usoweb.html の内容を返します.それだけです.
返したい HTML を,/usr/local/etc/usoweb.html として保存して,使用してください.あ,画像などは含めないようにしてください.

これ,打ち込むの面倒だなーなどといって,試さないのはダメですよ!!
打ち込む手間を省くために,上記のファイルを固めて,以下に置きました.
http://www.usupi.org/sysad/006.tgz

おまけで,リダイレクトするものも入れておきましたので,ぜひ, 展開して使ってみてください.(まずは README.txt を見てください.)
# 取りにいくのも展開するのも面倒,とか言うのはなしってことで….

宿題の答え

先週の問題は,

  別のサーバから持ってきた /etc/shadow のパスワードを設定する
  スクリプトを,作ってください.

でした.
答えは,以下の通りです.

  #!/bin/sh
  IFS=":"
  while read acct passwd day1 day2 day3 day4 day5 day6 res
  do
        usermod -p "$passwd" $acct
  done

ユーザ名とパスワードの部分だけ取り出せれば,あとは usermod コマンドでパスワードを指定して実行する,ということになります.

今週の宿題

今週の宿題は,こちらです.

  /proc/meminfo の内容を返すサーバを,作ってください.

…ひねりもなんもない宿題で,すみません.
HTML とか考えずに,/proc/meminfo をそのまま返すもので構いません.
telnet コマンドで,動作確認できればいいです.
使用するポートも,使っていないものを使えばいいと,思います.

あとがき

今,購読しているメルマガの数を数えてみたら,100を越えていました.
個人宛のメールが少ないのに,数日放置するだけで,メールボックスがえらいことになるのは仕方ないよな,と思いました.

そんななか,最近面白い! と思ったメルマガは,これです.

 『エンジニアがビジネス書を斬る!』って知ってる?
 最近流行のギター侍のパクリみたいだけど、
 奴よりも前から続いていて、中身もホンモノだよ♪
  ⇒ http://www.enbiji.com/magazine.html

わたしもビジネス書は好きで,通勤時に読んでますが,読書量がすごい!
そして,発行者まるるちゃんさんの,直球でわかりやすいコメントが, ナイスです.なんといいますか,同じエンジニアとは思えません.
同じエンジニアとして,爪の垢を煎じて飲むくらいしてもいいかも,と思いました.

爪の垢を飲まないにしても,ビジネス書に限らず,いろんな本を読んで, 広い視野を持つべきだな,と思いました.

さて,先週,お便りくださいとか栗バッジあげますとか書きましたが, 見事に1通もいただけませんでした.(TεT)
…ま,読者数が減っているわけではないので,気長に待つことにします.
# そう,前向きに考えることが…(以下同文).

ネタが,どんどん微妙な方向にそれていったら,ネタ切れ間近なんだなと 思ってください.…い,いやいや,ネタを送ってください.
# うまくいけば,栗バッジがあなたのもとへ!!

というわけで,今週も読んでいただき,たいへんありがとうございました.
それでは,また来週,お会いしましょう!

このメルマガの登録および解除は,以下からどうぞ.
http://www.usupi.org/sysad/ (まぐまぐ ID:149633)

栗の絵のメルマガも,よかったら見てください.毎日発行してます.
http://www.usupi.org/kuri/ (まぐまぐ ID:126454)


[バックナンバーのトップへ] [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

▼ せんでん




▼ 最近読んだ本

▼ 気に入ってる本