rc で起動時自動実行しましょう。これでマシンもサーバです;-)
 さてさて、ここまでの設定を無事に終るともうバリバリの FreeBSD ですね。完璧に Win95 が要らなくなりました;-)。と、言う事でここからは渋い、マニアックな設定をしましょう;-)。一つ目は FreeBSD 起動時に自動的に動き出す様にします。その為に /etc/rc.local にエントリを登録します。

1. canna サーバを自動で立ち上げる

----------------
# put your local stuff here
#  canna server
#
if [ -f /usr/local/canna/bin/cannaserver ]; then
        rm -f /var/spool/canna/lock/.CANNALOCK
        /usr/local/canna/bin/cannaserver;
        echo -n ' cannaserver Start*'
fi
----------------
2. samba を自動で立ち上げる
----------------
#  start samba
#
if [ -f /usr/local/samba/bin/samba.start ] ; then
        /usr/local/samba/bin/samba.start >/dev/console
#       echo "samba " > /dev/console
        echo -n ' samba Start'
fi
----------------
3. httpd(Apache) サーバ を自動で立ち上げる
----------------
#  start httpd
#

if [ -f /usr/local/apache/httpd -a  -f /usr/local/apache/conf/httpd.conf ]; then
    	/usr/local/apache/httpd -f /usr/local/apache/conf/httpd.conf;
    	echo -n ' Apache httpd Start*'
fi
----------------
4. xdm を自動で立ち上げる
 xdm が自動起動すれば、もう見掛けはほとんど UNIX マシンです;-)。/etc/rc.local の中では一番最後に書きましょう。
----------------
#  xdm 
#
X11R6=/usr/local/X11R6
if [ -f /usr/X11R6/bin/xdm -a -f /usr/X11R6/lib/X11/xdm/xdm-config ]; then
        /usr/X11R6/bin/xdm
        echo -n ' xdm Start*'
fi           
----------------
 samba と httpd は人によりインストール場所が違うと思います。それぞれの環境にあわせて設定しましょう。
 さ、これでサーバらしくなって来ました;-P。


FreeBSD でバーチャルホスティングしよう
 一台のサーバに複数の IP アドレスを付けて、そこに複数のドメインを割り当 てる技術と言うのがここ数年盛んになって来ています。FreeBSD はそれ が簡単に出来ます。以下のコマンドを投入する事により行えます。
----------------
roman# ifconfig ed1 inet 192.168.1.11 netmask 255.255.255.0 alias
ifconfig: ioctl (SIOCAIFADDR): File exists
roman# route add -host 192.168.1.11 127.0.0.1

roman# ifconfig -a
ed1: flags=8843 mtu 1500
        inet 192.168.1.2 netmask 0xffffff00 broadcast 192.168.1.255
        inet 192.168.1.11 netmask 0xffffff00 broadcast 192.168.1.255
        ether 00:80:ad:1d:fd:1a 
lp0: flags=8810 mtu 1500
tun0: flags=8050 mtu 1500
sl0: flags=c010 mtu 552
lo0: flags=8049 mtu 16384
        inet 127.0.0.1 netmask 0xff000000 
roman# netstat -irn
Name  Mtu   Network       Address            Ipkts Ierrs    Opkts Oerrs  Coll
ed1   1500        00.80.ad.1d.fd.1a      508    51      635     0    77
ed1   1500  192.168.1     192.168.1.2          508    51      635     0    77
ed1   1500  192.168.1     192.168.1.11         508    51      635     0    77
lp0*  1500                                 0     0        0     0     0
tun0* 1500                             14286     0    14591     0     0
sl0*  552                                  0     0        0     0     0
lo0   16384                             9745     0     9745     0     0
lo0   16384 127           127.0.0.1           9745     0     9745     0     0
roman# 
----------------
 新しく IP が割り当てられたかは、ifconfig か netstat コマンドで見る事が 可能です。

 では、上記のコマンドを以下の様に csh スクリプトにして、このスクリプト を rc.local の中で httpd(apache) より先に実行すれば apache でバーチャル ホスティングが行える様になります。

---------------- /usr/local/bin/ipadd
#!/bin/csh
ifconfig ed1 inet 192.168.1.11 netmask 255.255.255.0 alias
route add -host 192.168.1.11 127.0.0.1
ifconfig ed1 inet 192.168.1.12 netmask 255.255.255.0 alias
route add -host 192.168.1.12 127.0.0.1
ifconfig ed1 inet 192.168.1.13 netmask 255.255.255.0 alias
route add -host 192.168.1.13 127.0.0.1
----------------
---------------- /etc/rc.local
#  IP add Command
#
if [ -f /usr/local/bin/ipadd ]; then
    	/usr/local/bin/ipadd;
    	echo -n ' IP Added VIF Start*'
fi
----------------
 これで OK。後は、新しくバーチャルにフラレタIP アドレスに対し、traceroute とか、ping とか telnet してみれば、自分の PC にたどり着く事が分かると思います。にんにん(^^)。


cron で自動実行しましょう
 cron とは UNIX の機能で簡単に言えばスケジューラです。一定の時間、曜日が来ると自動的に動き出す機能です。では設定して見ましょう

 まず、自宅の FreeBSD を PPP 接続出来る様にしました。私の場合、テレホにしたので夜 23:00 から 翌朝 8:00 まで繋げ放題が可能になりました :D :D。と、言う事で、

・一定の時間が来たら自動的に接続したいなぁ・・。
・朝、テレホタイムが終る前に PPP を切りたいなぁ・・。

等と思ってしまうのでした(^^;。
#これを読んだブロバイダな人は怒るだろうなぁ・・(^^;

と、言う事で上記の希望をかなえてくれるのが cron です。まずは、コマンドを作ります。

1. PPP 接続用のコマンドの作成
 
プロバイダに接続してみようの所で、オートモードの説明を書かなかったのはその必要が無かったからなのでした;-)。以下のコマンドで PPP 接続が可能になります。

----------------
#!/bin/sh
/usr/sbin/ppp comeback
----------------
 これを例えば /usr/local/bin/pppon に保存して、chmod 755 /usr/local/bin/pppon とすれば OK 十分なコマンドです。

2. PPP 切断用のコマンドの作成
 IIJ-PPP ってプロセス ID を保存して無いのでしょうか・・。知っている人教えて下さい・・(^^;。私は強引にコマンドを作ってしまったのでした。

----------------
#! /usr/local/bin/perl

print "IIJ-PPP Killing procees Start\t" . `date` ."\n";
open(IN,"ps -ax |");
   while(<IN>) {
   next if $_ =~ /pppoff/;
   if ($_ =~ /ppp/) {
       @tmp = split;
       $pid = $tmp[0];
       print $pid . "\n";
       system("kill $pid");
   }
}
exit 1;
----------------
 仕掛けは簡単、ps -ax として ppp と付くプロセスをはじから kill すると言う強引なコマンドです・・(^^;。これも pppon 同様、/usr/local/bin/pppoff に保存して、chmod 755 /usr/local/bin/pppoff とすれば OK です。

3. いよいよ cron エントリに登録です
 さてさて、コマンドの用意が出来ました。次はいよいよ cron のエントリに登録しましょう。ユーザはとりあえず自分の ID で OK です。プロンプトから crontab -e とコマンドを実行して、cron のエントリを登録します。このコマンドを打つとエディタが起動されます。普通は vi が立ち上がります。ここにエントリを登録します。

----------------
4 23 * * * /usr/local/site/bin/pppon | mail dreams 2>&1
55 7 * * * /usr/local/site/bin/pppoff | mail dreams 2>&1
----------------
・上の行の説明
 毎日、23:04 に /usr/local/bin/pppon と言うコマンドを実行します。その実行結果は localhost 内の dreams さん宛にメールで送信します。
 この時、メールは PPP を終了した時に送られます。

・下の行の説明
 毎日、07:55 に /usr/local/bin/pppoff と言うコマンドを実行します。その実行結果は localhost 内の dreams さん宛にメールで送信します。

 さて、これで追加したらセーブして終了しましょう。これで cron の登録が終りました。テストが必要ですね。恐いですから。特に電話が切れなかった場合は非常に恐いです・・(^^;;;
 テストですが、各行の一番最初の数値が「分」を表しています。次の数値は「時」を表しています。その間はスペースで区切ります。"*" は "お約束" と思っていて下さい・・(^^;。で、テストを行う時間を適当に調整して下さいね(^^;。

4. ついでにメールの pop も cron エントリに登録してしまおぅ
 メールの受信は OK かな?で書いたスクリプト は端末を一個占有してしまいました・・。これではマシンの資源がもったいない・・。と言う事で、以下の行を cron に登録しましょう。

----------------
0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57 * * * * /usr/local/bin/popclient -3 -u dreams -p onenight pop.comeback.or.jp > /dev/null 2>&1
01,16,31,46, * * * *  /usr/local/bin/popclient -3 -k -u dreams -p kaisyapass caisya.co.jp > /dev/null 2>&1
----------------
 これでメールの受信も cron になりました。めでたしめでたし;-)。

 cron は自分が X から logout しても動いています。良い事ですね。これで後は各種サーバを立ち上げるだけですね;-)。


Copyright (c) 1997-2004 takachan@running-dog.net All Rights Reserved.