今回は,Perlスクリプトの定期自動実行に触れながら,Webサイトから情報を取得したり,メールを自動送信するといったネットワークの利用について解説します。

 最近テレビや新聞でも,コンピュータ・ウイルス(以下,ウイルス)のニュースを大きく扱うことが多くなりました。

 これまでウイルスの主なターゲットはWindows系OSでしたが,Linuxを対象としたものも増えてきています。今後,Linuxが普及すればするほど,ウイルスに狙われる危険性が高くなることが懸念されています。

 ウイルスばかりでなく,サーバー・プログラムのセキュリティ・ホールを狙った攻撃も忘れてはいけません。放置しておいたら,あなたのマシンが別のマシンを攻撃するための踏み台に使われてしまうこともないとはいえません。

 こうしたウイルスや攻撃への対策は1回限りで済むのものではありません。新種のウイルスや新しい攻撃方法が次々に現れています。そのため日ごろから新しい情報をチェックし,対策をつかんでおくことが大切です。こうした情報は,情報処理振興事業協会(IPA)のセキュリティセンターやラックなどのセキュリティ関連団体・企業,ウイルス対策ソフトウエア開発会社などさまざまなサイトから取得できます。

cronにより定期的に起動

 しかし,自慢にはなりませんが,筆者は“ずぼら”です。セキュリティ情報を提供しているサイトを定期的に訪れて,新しい情報がないかのチェックは正直面倒です。チェックしても,サイトが更新されていないかもしれません。

 システム管理には,このほかにもログの集計やディスクの容量チェックなど,定期的に行わなければならないことが数多くあります。こういった面倒なことこそ,代わりにコンピュータにやってほしいことなのです。

 こうしたときに,よく使われるのがcronコマンドです。前回までは,自分でコマンドを入力してPerlスクリプトを実行してきましたが,cronを使えば自分で実行しなくても定期的にPerlスクリプトを実行できます。cronのスケジュールに,実行するスクリプトと定期起動の日時を設定するだけで済みます。

 cronのスケジュールはcrontabコマンドを用いて登録します。

$ crontab -e

と入力すると,現在登録されているスケジュールがエディタ上に読み込まれます。これを編集し,終了した時点で編集した内容がスケジュールに反映されます。なお,スケジュールが読み込まれるエディタは,環境変数EDITORによって指定されたものです。

 スケジュールに登録するエントリの各項目の意味は表1の通りです。数字を用いて,起動させたい時刻や日付,曜日を指定します。このとき“*”は任意の値です。また,“,”で区切って複数の値を指定することもできます。

表1●スケジュールに登録する定期起動設定の各項目
表1●スケジュールに登録する定期起動設定の各項目

 例えば,毎日朝7時にcheck.plを実行するのであれば,

0 7 * * * perl check.pl

月,水,金曜日の朝9時であれば,

0 9 * * 1,3,5 perl check.pl

といった具合です。

 このようにして定期的にコマンドを実行できます。後はWebサイトにアクセスし,ページが更新されていたらインターネット・メールで知らせるスクリプトを用意すれば,Webページのチェックも楽になるでしょう。