ホーム > HTMLに役立つヒント > マニュアルに書いてないNAMAZU
> 毎日午前7時にインデックスを更新する
なぜ毎日インデックスを更新するかというと、例えば頻繁にhtmlファイルが増えたりするケースや、僕のように掲示板の発言内容をその日のうちにインデックスに反映させたいなどのケースで、いちいち手動でやっているのが面倒だからなんですね。
やり方は簡単です。まず、インデックスを更新するためのプログラムファイルを作り、そのファイルを時間がくると実行するようにシステムに登録してやります。単純ですね。
autoindex.shというファイル名で「/home/name/html/NAMAZU/」ディレクトリ(他の場所でも可。その場合は下のcronの位置指定に注意)に置きます。パーミッションは755にします。以下の例では/home/name/html/NAMAZU/index/にインデックスを作ります。
このファイルは何をやっているのかというと、単純にtelnetしたときのコマンドを順番に記述しているだけ。先頭に「#」のある行はコメント扱いになり、実行されません。先頭に「#」のない行だけが実行されます。先頭の「#!/bin/sh」はこのファイルを実行するシェルを指定する部分で、ここだけは先頭に必ず「#」が必要です。
------------------- ここから -----------------------
#!/bin/sh
# 自動インデックス更新.shファイル
#
## 以下の3行はLANG変数があらかじめサーバに設定されていない場合
## に必要なコマンドですので、設定が必要な場合は行頭のシャープを
## 外して有効にしてください。
# LANG=ja
# export LANG
# set | grep LANG
# indexを作成するディレクトリに移動する
cd /home/name/html/NAMAZU/index/
# リストによってインデックスを作る。
# この場合、indexディレクトリにindexlistという
# インデックスファイルリストがおいてある。
mknmz -F indexlist
------------------- ここまで -----------------------
上のファイルを置いたら、間違っていないかテストしてみます。telnetで上のファイルを置いたディレクトリに移動して、「./autoindex.sh」と打ち込んでそのファイルを起動させてやります。
無事に自動的にインデックスを更新したでしょうか。ちゃんと動いたら、次のステップに進みます。
次にこれを自動的に起動させるためにシステムのcronに登録します。まずtelnetでcronエディタを開きます。
crontab -e ←エディタを開く
a ←最初は編集モードなので、入力モードに切り替える。「i」でも「C」でも可。viエディタはわかりにくいので、簡単なマニュアルを作りました。参照してください。
cronは1行で記述し、分 時 日 月 曜日 コマンドと並べて、それぞれをタブか半角スペースで区切って記述します。
0 0 * * * /user/hoge/sendlog.pl
| | | | | _____________________
| | | | | |
| | | | | +------- 実行するコマンド
| | | | +-------------- 曜日(0-6) 日曜が0。指定しない場合は*
| | | +---------------- 月 (1-12) 指定しない場合は*
| | +------------------ 日 (1-31) 指定しない場合は*
| +-------------------- 時 (0-23) 指定しない場合は*
+---------------------- 分 (0-59) 指定しない場合は*
コマンドはなんでもアリアリですが、今回は上で作ったautoindex.shファイルを指定するだけです。
↓毎朝7時に実行する例。
------------------- ここから -----------------------
0 7 * * * /home/name/html/NAMAZU/autoindex.sh
------------------- ここまで -----------------------
↓毎時0分に実行する例。
------------------- ここから -----------------------
0 * * * * /home/name/html/NAMAZU/autoindex.sh
------------------- ここまで -----------------------
実は分、時、日、月、曜日は「,」で区切って複数の指定をすることができます。 ↓10分おきに実行する例。
------------------- ここから -----------------------
0,10,20,30,40,50 * * * * /home/name/html/NAMAZU/autoindex.sh
------------------- ここまで -----------------------
(esc)←エスケープキーで編集モードに移行する。
ZZ(大文字) ←ZZで保存してエディタを終了する。
もし、入力途中に操作がわからなくなったら、ESCキーを押して編集モードに移り、「:q!」と打ち込めば保存せずにエディタを強制終了できます。
登録内容は crontab -l で確認できます。
なお、crontabコマンドはサーバによってはスーパーユーザーだけができる場合もあるそうです。
cronに登録してそれが作動すると、その都度自分宛にcronからメールが送られてきます。起動したファイルの結果を通知してくるので、インデックスに追加があったかどうかはメールをチェックするとわかります。
で、いちいちメールを送ってこられるのが煩わしいという人は、次の赤いコマンドを足してやります。これでメールを送ってこなくなるそうです。僕自身は試してないですけど。
------------------- ここから -----------------------
0,10,20,30,40,50 * * * * /home/name/html/NAMAZU/autoindex.sh
1> /dev/null 2> /dev/null
------------------- ここまで -----------------------
●もうちょっと詳しいcron書式の解説
・範囲指定 「10-50」のように範囲指定もできます。「3,10-20」といった混在表記も可能。
・インターバル指定 「/数字」という書式で、例えば「時」に「23-7/2」とすると、23時から7時まで2時間おき(23時,1時,3時,5時,7時)に実行されます。分に「0,10,20,30,40,50」と書くのと「0-59/10」と書くのとは同義。
・曜日 sun/mon/tue/wed/thu/fri/satという書き方もできます。
・月 jan/feb/mar/apr/may/jun/jul/aug/sept/oct/nov/decという書き方もできます。