サーバサービス/Web 監視と警告メール
提供: Internet Web School
目次 |
概要
ここでは、PHPによるデータ入出力処理の例をあげ、PHPでのWeb監視と警告メール処理の例を示します。
ここではあるWebサーバーから、他のサーバにあるWebサイトを監視して、異常があったら決められた人にメールを発信するPHPプログラムについて学びます。
例えば
- あるWebページはちゃんと外部から見えているかの監視。常に外部に発信していなければいけないWebページが色々な理由により止っていることがあります。そうなっていないかどうかを監視します。
- 同じくあるWebページが、何か予期せぬ理由により書き換えられていないかの監視をします。
- ある興味をもっているWebページに新しい情報が載ったかどうか監視します。
メールを送るPHPプログラム
メールを送るPHPプログラムの例を示します(mailifauto.php)。
1 <?php
2 //
3 $ToAddress = "jac***@softbank.ne.jp";
4 ?>
5 <html>
6 <head>
7 <title></title>
8 </head>
9 <?php
10 $Message = "from Nakamura";
11 $Message .= "\n";
12 $Message .= "--------------\n";
13 $Message .= "Trouble in Jac***.com! \n";
13 $Message .= "------------- \n";
14 $fp = @fopen("http://ja****.com/iws/abc.html", "r");
15 while( ! feof( $fp ) ){
16 $mm= fgets( $fp, 91820 );}
17 fclose($fp);
18 if ($mm !="<html>abc</html>")
19 { mb_send_mail($ToAddress, "Auto", $Message);}
20 ?>
21 </body>
22 </html>
というものです。左側に付けた番号はプログラムの説明のための便宜的なものです。
2番で送りたいメールのあて先のアドレスを指定します。 これは基本的に前章のプログラムと同じように監視結果をメールで通知するものです。
10番から13番で、そのメールの本文を指定します。$Message という変数に一度本文が代入されます。
.=というのはメッセージを前の文に追加して代入するというものです。
14番では監視するWebのページのURLを指定します(ここでは
http://ja****.com/iws/abc.html)。
18番19番で、監視したいWebページ(ここではabc とだけ書かれたページ, http://ja****.com/iws/abc.html) の内容をチェックし、内容が異なったら、警告のメールを出します。
このPHPプログラム(mailifauto.php)を前章でやったようにクローン機能で、定期的に呼び出せばいいのです。例えば毎朝7時30分に動作させるのです。なおabc.html のファイルの内容は
<html>abc</html>
という簡単なものです。