Construction 5:自宅サーバを作ろう(TurboLinux6.5編)其の二

ハードウェアのセットアップとOSのインストール、ダイヤルアップルーターの設定で 手間取ってしまった。 今回はその続きから。

ダイナミックDNS

IPアドレスでいまどきホームページにアクセスしに来る人はいない。 そこで DNSを使って、自分のIPアドレスにドメインをつけてくれるサービスとして、 DYNDNSを利用してみる。 ここで自前のドメインを取得したら、サーバでhttpdを起動し、外からアクセスできるかテストする。www.xbee.homeip.netでのアクセスを確認。 このページに手動でIPアドレスを同期するボタンがあるが、 回線をプロバイダに繋ぎなおすたびにいちいちこれを押していたのでは洒落にならない。 そこで自動更新の方法を考える。

ddup-3.0.1-unix.tar.gzというファイルを探してきて解凍後、./install。 インストール先などを聞かれるが大体デフォルトでOK。 IDとパスワードもここで設定して、/etcに格納される。 使用許可はrootではなく、一般ユーザに与えた。 このddupというツールの使い方だが、

$/sbin/ddup --host xbee.homeip.net --wildcard

を実行すればよい。だったらこれを頻繁に実行していれば良いかといえば、 情報のアップデートにも負荷がかかるので必要以上に更新するとサーバから 怒られてしまうらしい。

そこで前回登録したIPアドレスと、今自分が持っているIPアドレスを比較して、 変わっていたら登録に行く、というのを5分おきにチェックするというのはどうだろうか。

#!/bin/sh
# getip.sh

if ! wget -q -O .router.sjis http://DRのプライベートアドレス/wans.htm
then
exit
fi
tail -n 76 .router.sjis|head -n 1 > .router
awk -f putip.awk .router

そこで、上のシェルスクリプトをcronに登録する。 WAN状況を見るHTMLがwans.htmlなので、そのページをゲットし、 IPアドレスの書かれた行をローテク、head+tailで切り出し、putip.awkに渡す。

#!/bin/awk
# putip.awk

{

if ($0 ~ // ) {
    $0 = substr( $0,index ( $0 , "D" ) +2 );
    CurrentIP = substr($0,1,index( $0 , "<" ) -1 );

    if ( CurrentIP !~ /^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$/) { exit }
    getline FormerIP < ".ipaddress";

 if ( CurrentIP != FormerIP ) {
     print  CurrentIP > ".ipaddress";
    if (system("/sbin/ddup --host xbee.homeip.net --wildcard") !=0 ) { exit }
}
   exit;
}
}

awkが良く分からないので美しくないが動いてるのでよしとする。 要はIPアドレスを切り出して、.ipaddressというファイルに書き出しておき、 それと今のIPアドレスを比較して、異なっていたらddupで更新に行く、ということ。 www.xbee.homeip.netでもアクセスできるように、--wildcardオプションもつけた。

$crontab -e

*/30 * * * * /home/yoshi/getip.sh

そうそうIPアドレスもかわるものでもないし、ということで、30分おきに チェックするようにした。


Analog-4.16

たまたま買ったUNIXUSERにanalogのRPMが入っていたので、それを使ってみる。

$rpm -Uvh analog-4.16-2utf.i386.rpm
エラーのようなものがでるが、別にいいらしい(?)

/etc/analog.confをちょっと修正する必要がある。

LANGFILE /var/analog-4.16/lang/jp.lng ←追加
DOMAINSFILE /var/analog-4.16/lang/jpdom.tab ←修正
UTF8FILE /var/analog-4.16/lang/jputf8.lng ←修正

あとはanalogを実行すればとりあえずrootなら動く。 できれば、analog.conf内のHOSTNAMEくらいは、書き換えておきたいところ。 ログの集計は自動でやりたいので、 面倒なので、そのままrootでcronで回す(いいのか?)

/home/httpd/html/stats.html

でデフォルトで出力されるので、それにリンクを貼って完成。


Ng

TELNETで作業をしているとき、viだけだと非常につらい。 そこで、思い出したようにNgを入れてみた。ソースは適当にとってくる(ぉ。

$tar xfvz ng13Lcanna1.0.2.tar.gz
$ln -s sys/sys/Makefile.canna Makefile
$make
$su
#cp ng /usr/local/bin

これでとりあえず、動くようになったが、付属のdot.ngでは カーソルキーで上下左右にいかなくて、自分のような弱弱ユーザにはつらいので、 .ngに以下の設定を追加

; 矢印キーでカーソル移動できるようにする(canuumを利用しない場合)
(global-unset-key "\^[\[" 'backward-paragraph)
(global-set-key "\^[\[A" 'previous-line)
(global-set-key "\^[\[B" 'next-line)
(global-set-key "\^[\[C" 'forward-char)
(global-set-key "\^[\[D" 'backward-char) 

ちなみに参考にしたのはここありがたき。


プリンタサーバ

今までWindows2000にUSBで繋がっていたEPSON-PM3000をLinuxサーバに繋いで プリンタサーバを作ってみることに下。

まず、/etc/printcapを以下のような感じで記述。

lp:\
        :sd=/var/spool/lpd/lp:\
        :mx#0:\
        :sh:\
        :lp=/dev/lp0:

あとはスプール先として/var/spool/lpd/lpをmkdirして書き込めるようにchmod。 おまじないとして、/etc/modules.confに

alias partport_lowlevel partport_pc
options partport_pc io=0x378 irq=7,auto

これでlpdを起動すれば後はlprとかで印刷できるはず。Windowsからの共有も sambaを起動しておけば、大体いけるはず(ぉ


適宜更新・・・・。。 今日はここまで