|
上記表示の SSI は、<!--#exec cmd="./log_day_get.pl"--> で実行させる。
log_day_get.pl は、下記のプログラム名です。
-----------------------------------------------------------------
#!/usr/bin/perl
#----------------------------------------------------------------
# root mail のログ日を指定する SSI
#----------------------------------------------------------------
# option リスト 1日前の年月日作成
$Ago_day = 1;
($sec,$min,$hour,$day,$mon,$year) = localtime(time-24*60*60*$Ago_day);
$year += 1900; # 年を西暦にする。
$mon++; # 1月のデータが 0 なので +1 する。
&yyyymmdd; # $today = yyyymmdd
$Mday = $mon." 月 ".$day." 日"; # n 日前の月日
#----------------------------------------------------------------
$Fmsg =<<"msg";
<!-- ここから、log_day_get.cgi start -->
<form method="get" action="root_log.cgi">
<font color="black" size="2">指定日</font><select name="logday">
<option selected value="$today">$Mday</option>
msg
print "$Fmsg";
#----------------------------------------------------------------
# option リスト 2 ~ 10日前の年月日作成
$i = 2;
while ($i < 11){
($sec,$min,$hour,$day,$mon,$year) = localtime(time-24*60*60*$i);
$year += 1900; # 年を西暦にする。
$mon++; # 1月のデータが 0 なので +1 する。
&yyyymmdd; # $today = yyyymmdd
$Mday = $mon." 月 ".$day." 日"; # n 日前の月日
# print "<option value=\"$today\">$Mday</option>\n";
$i++;
$Fmsg =<<"msg";
<option value="$today">$Mday</option>
msg
print "$Fmsg";
}
#----------------------------------------------------------------
$Fmsg =<<"msg";
</select>
<input type=submit value="root Mail\x95\x5C示"></form>
<!-- ここで、log_day_get.cgi end -->
msg
print "$Fmsg";
#----------------------------------------------------------------
exit(0);
#----------------------------------------------------------------
sub yyyymmdd {
# yyyymmddをつくる。
#
$Nmon = sprintf ("%02d",$mon); # mm表記にする。
$Nday = sprintf ("%02d",$day); # dd表記にする。
$today = $year.$Nmon.$Nday; # yyyymmdd
#
return;
}
-----------------------------------------------------------------
(D-1)下記の cgi プログラムをセンター表示するための
CSS プログラム style.css で保存してください。
-----------------------------------------------------------------
#container{
width:1000px;
margin-left:auto;
margin-right:auto;
border-style: none;
}
-----------------------------------------------------------------
(D-2)Logwatch の rooo宛てメールをホームページとして表示する cgi プログラム
log_day_get.pl のプログラムの<form method="get" action="root_log.cgi">
から、実行されるプログラム
root_log.cgi は、下記のプログラム名です。
root宛てのログのテキストには、HTML では、特殊文字になる &,<,>," が
含んでいるので、 文字置換をしています。
-----------------------------------------------------------------
#!/usr/bin/perl
#
print "Content-type: text/html\n";
print "\n";
$Fmsg =<<"msg";
<!DOCTYPE html>
<html lang="ja">
<head><title>Logwatchのroot宛てメール</title>
<link rel="shortcut icon" href="favicon.ico">
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta content="text/css" http-equiv="Content-Style-Type">
<meta content="text/javascript" http-equiv="Content-Script-Type">
<link rel="stylesheet" href="style.css" type="text/css" media="all">
</head>
<body>
<div id="container">
<table border="0"><col width="100"><col width="100"><col width="100">
<tr>
<td></td>
<td align="right">
<form action="../../index.html" method="GET">
<input type="submit" name="sub1" value="index.htmlへ戻る">
</form></td>
<td align="left">
<form action="myloglist.html" method="GET">
<input type="submit" name="sub2" value="元のページへ戻る">
</form></td>
</tr>
</table>
msg
print "$Fmsg<br>";
#----------------------------------------------------------------
#---------------------------------------------------------------
$form_data = GET_form();
$form_data =~ s/logday=//;
#
$logfile = "root$form_data";
$logfiledir_in = "/home/○○○○/root_mail/$logfile";
#
# 1文字目から4文字を取り出す
$yyyy = substr($form_data, 0, 4); # 年
# 5文字目から2文字を取り出す
$mm = substr($form_data, 4, 2); # 月
# 7文字目から2文字を取り出す
$dd = substr($form_data, 6, 2); # 日
#---------------------------------------------------------------
if (-f $logfiledir_in) {
}else{
print "<br><p><b>$logfileのメールは、ありません。</b></p>\n";
exit;
}
#
# 読取モードで $logfiledir_in のファイルを開く
#
open( get_data, "<$logfiledir_in");
#
# root宛てメールデータのHTML出力
#
print "<b><p>$yyyy年$mm月$dd日のroot宛てメールデータ</p></b>";
print "<p><pre>\n";
while(<get_data>) {
~ s/&/&/gi; <---- & を & に変換する。
~s/</</gi; <---- < を < に変換する。
~s/>/>/gi; <---- > を > に変換する。
~s/"/"/gi; <---- " を " に変換する。
print "$_";
}
print "</p></div></body></html>\n";
#
close(get_data);
# 終了
exit(0);
#---------------------------------------------------------------
# form action="○○○" method="GET" のデータを取得する。
#
sub GET_form{
local $form_data;
$form_data = $ENV{'QUERY_STRING'};
return $form_data;
}
#---------------------------------------------------------------
# form action="○○○" method="POST" のデータを取得する。
#
sub POST_form{
local $form_data;
# STDIN : 標準入力
read(STDIN, $form_data, $ENV{'CONTENT_LENGTH'});
return $form_data;
}
#---------------------------------------------------------------
-----------------------------------------------------------------
Logwatch で分かるサーバ機の動作情報の項目と概要
( このセクションのつづきに、Logwatch のログの表示例を掲載しています。)
Logwatch のログの詳細度(Detail)は、中(Med)にしています。
-----------------------------------------------------------------
---------------------clam-update Begin ------------------------
・clamのアップデート情報が分かります。
----------------------clam-update End -------------------------
--------------------- Clamav Begin ------------------------
・1日のうちにclamavのデータベースチェックの何回実行されたかが分かります。
標準では、10分間隔で一日に144回になります。
---------------------- Clamav End -------------------------
--------------------- Cron Begin ------------------------
・定時に行われているCron処理内容
1日のうちにどのプログラムが、何回実行されたかが分かります。
---------------------- Cron End -------------------------
--------------------- ftpd-xferlog Begin --------------------
・1日のうちにサーバーからどれだけの容量のデータが入出力されたのか
が分かったります。
---------------------- ftpd-xferlog End ----------------------
--------------------- Kernel Begin ------------------------
・kernelにおける起動またはエラー情報が分かります。
---------------------- Kernel End -------------------------
--------------------- pam_unix Begin ------------------------
・Linuxのpam認証においての認証成功または失敗
つまり、Tera Termでアクセスした履歴が確認できます。
---------------------- pam_unix End -------------------------
--------------------- proftpd-messages Begin ----------------
・proftpdへのログイン履歴が確認できます。
つまり、ffftp でアクセスした履歴が確認できます。
---------------------- proftpd-messages End -----------------
--------------------- Connections (secure-log) Begin --------
・Connections (ecure-log) ユーザー追加時など
---------------------- Connections (secure-log) End ---------
--------------------- sendmail Begin (detail=3) -------------
・メール送信サーバに関するログです。
メールの回数・容量が確認できます。
---------------------- sendmail End -------------------------
--------------------- SSHD Begin ------------------------
・接続が成功した場合は、そのIPアドレス(またはホスト名)が確認できます。
つまり、Tera Termでアクセスした履歴が確認できます。
---------------------- SSHD End -------------------------
--------------------- yum Begin ------------------------
・yum -y updateでアップデートされたパッケージ名が確認できます。
---------------------- yum End -------------------------
--------------------- Disk Space Begin ------------------------
・Disk Space Linuxのディスクスペース使用状況が確認できます。
---------------------- Disk Space End -------------------------
-----------------------------------------------------------------
|