MRTG index生成CGI
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
**index.htmlの動的生成CGI [#pde3dffb]
MRTG用index.htmlを動的生成するシェルスクリプトCGI
**使用方法 [#j1a8a477]
index.html生成パラメータを記載した設定ファイルを作成し、C...
~
1. MRTG添付のindexmakerスクリプトでindex.htmlを生成
2. 生成したindex.htmlをデータ保管ディレクトリに配置
3. index生成パラメータを記載したindex.confを作成し、同デ...
4. CGIの引数としてindex.confの絶対パスを指定
**index.conf [#m87b54d7]
index.confは以下の内容を記載する。
-SERVERNAME~
index.htmlのタイトルに表示する文字列~
~
-DATADIR~
MRTGが生成した画像ファイルのディレクトリパス(絶対パス)~
~
-URL~
HTMLのリンク生成時に使用するMRTGが生成した画像ファイルの...
~
-ITEM~
グラフのファイル名を記載。1行で1項目を記載し複数行でグラ...
ITME一覧は以下のコマンドで取得できる。
ls -la | grep .old | awk '{printf "ITEM %s\n",$9}' | sed...
~
-サンプル
SERVERNAME ServerName
DATADIR /home/mrtg/data/server
URL /mrtg/data/server
ITEM server_2
ITEM cpu_load
ITEM rmem
ITEM vmem
ITEM disk1
**mrtg-index.cgi [#k7584d4a]
実行するには以下の箇所に設定を記載する必要がある。
~
-LOGOIMG~
MRTGのロゴ画像ファイルが保管されているURLパスを指定。~
~
-TEMPDIR~
一時ファイルの生成場所を指定。一時ファイルはapacheの実行...
~
実行時には以下の様に引数を与える。
/mrtg/mrtg-index.cgi?/home/mrtg/data/server/index.conf
~
-ソース~
#!/bin/sh
# ------------------------
# MRTG index.cgi
# ------------------------
# Version : 1.0
# date : 2007/12/27
export LANG=C
export PATH=/bin:/sbin:/usr/bin:/usr/sbin:$PATH
## Set
LOGOIMG="/mrtg/img"
TEMPDIR=/home/httpd/mrtg/tmp
## Check
if [ -f $1 ]; then
INDEXCONF=$1
else
echo Content-type: text/html
echo
echo "<HTML><HEAD><TITLE>Script Error Page</TITLE></HEA...
echo "Script Parm Error<BR>"
echo $1"<BR>"
echo "</CENTER></BODY></HTML>"
exit 0
fi
## Exec
RAND=`date +%Y%m%d%H%M%S`
DATADIR=`grep DATADIR $INDEXCONF | awk '{print $2}'`
SERVERNAME=`grep SERVERNAME $INDEXCONF | awk '{print $2}'`
OUTPUT=$TEMPDIR/$RAND.html
ITEMCOUNT=`grep ITEM $INDEXCONF | wc -l`
ITEMLIST=$TEMPDIR/$RAND.txt
TODAY=`date +%Y/%m/%d\ %H:%M:%S`
URLDATA=`grep URL $INDEXCONF | awk '{print $2}'`
## Init
echo "" > $OUTPUT
grep ITEM $INDEXCONF > $ITEMLIST
## HTML OUTPUT
# Header
cat <<EOF >> $OUTPUT
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitiona...
<HTML>
<HEAD>
<TITLE>$SERVERNAME</TITLE>
<meta http-equiv="content-type" content="text/html; ...
<META HTTP-EQUIV="Refresh" CONTENT="300" >
<META HTTP-EQUIV="Cache-Control" content="no-cache" >
<META HTTP-EQUIV="Pragma" CONTENT="no-cache" >
<META HTTP-EQUIV="Expires" CONTENT="Wed, 26 Dec 2007...
<LINK HREF="favicon.ico" rel="shortcut icon" >
<style type="text/css">
body {
background-color: #ffffff;
}
div {
border-bottom: 2px solid #aaa;
padding-bottom: 10px;
margin-bottom: 5px;
}
div h2 {
font-size: 1.2em;
}
div.graph img {
margin: 5px 0;
}
div.graph table, div#legend table {
font-size: .8em;
}
div.graph table td {
padding: 0 10px;
text-align: right;
}
div table .in th, div table td span.in {
color: #00cc00;
}
div table .out th, div table td span.out {
color: #0000ff;
}
div#legend th {
text-align: right;
}
div#footer {
border: none;
font-size: .8em;
font-family: Arial, Helvetica, sans-serif;
width: 476px;
}
div#footer img {
border: none;
height: 25px;
}
div#footer address {
text-align: right;
}
div#footer #version {
margin: 0;
padding: 0;
float: left;
width: 88px;
text-align: right;
}
</style>
</HEAD>
<BODY bgcolor="#ffffff" text="#000000" link="#000000" vl...
<CENTER>
<TABLE width="90%">
<TR><TD width="90%" colspan="3"><HR></TD></TR>
<TR>
<TD width="25%"></TD>
<TD width="50%"><FONT size="5">$SERVERNAME</FONT></TD>
<TD width="25%" valign="bottom"><FONT size="2">$TODAY</...
<TR><TD width="90%" colspan="3"><HR></TD></TR>
</TABLE>
<TABLE BORDER=0 CELLPADDING=0 CELLSPACING=10>
EOF
# Body
i=1
while [ $i -le $ITEMCOUNT ];
do
ITMENAME=`sed -n -e ${i}"p" $ITEMLIST | awk '{print $2}'`
ITEMTITLE=`grep title $DATADIR/$ITMENAME.html | sed -n ...
GRAPHITME=`grep -A24 "End Head" $DATADIR/$ITMENAME.html ...
if [ -f $DATADIR/$ITMENAME.html ]; then
cat <<EOF >> $OUTPUT
<TR>
<TD align="left">
<B>$ITEMTITLE</B>
</TD>
</TR>
<TR><TD>
<div class="graph">
<A href=$URLDATA/$ITMENAME.html>
<IMG border="1" src=$URLDATA/$ITMENAME-day.png>
</A><BR>
$GRAPHITME
</DIV>
</TD></TR>
EOF
fi
i=$(($i+1))
done
# Footer
cat <<EOF >> $OUTPUT
</TABLE>
<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
<TR>
<TD WIDTH=63><A
HREF="http://oss.oetiker.ch/mrtg/"><IMG
BORDER=0 SRC="$LOGOIMG/mrtg-l.png" WIDTH=63 HEIGHT=2...
<TD WIDTH=25><A
HREF="http://oss.oetiker.ch/mrtg/"><IMG
BORDER=0 SRC="$LOGOIMG/mrtg-m.png" WIDTH=25 HEIGHT=2...
<TD WIDTH=388><A
HREF="http://oss.oetiker.ch/mrtg/"><IMG
BORDER=0 SRC="$LOGOIMG/mrtg-r.png" WIDTH=388 HEIGHT=25
ALT="Multi Router Traffic Grapher"></A></TD>
</TR>
</TABLE>
<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
<TR VALIGN=top>
<TD WIDTH=88 ALIGN=RIGHT><FONT FACE="Arial,Helvetica" ...
version 2.15.2</FONT></TD>
<TD WIDTH=388 ALIGN=RIGHT><FONT FACE="Arial,Helvetica"...
<A HREF="http://tobi.oetiker.ch/">Tobias Oetiker</A>
<A HREF="mailto:tobi+mrtglink@oetiker.ch"><tobi@oet...
and <A HREF="http://www.bungi.com/">Dave Ran...
</TD>
</TR>
</TABLE>
</CENTER>
</BODY>
</HTML>
EOF
## Disply HTML
echo Content-type: text/html
echo
cat $OUTPUT
## Delete Temp Files
rm $OUTPUT
rm $ITEMLIST
# EOF
終了行:
**index.htmlの動的生成CGI [#pde3dffb]
MRTG用index.htmlを動的生成するシェルスクリプトCGI
**使用方法 [#j1a8a477]
index.html生成パラメータを記載した設定ファイルを作成し、C...
~
1. MRTG添付のindexmakerスクリプトでindex.htmlを生成
2. 生成したindex.htmlをデータ保管ディレクトリに配置
3. index生成パラメータを記載したindex.confを作成し、同デ...
4. CGIの引数としてindex.confの絶対パスを指定
**index.conf [#m87b54d7]
index.confは以下の内容を記載する。
-SERVERNAME~
index.htmlのタイトルに表示する文字列~
~
-DATADIR~
MRTGが生成した画像ファイルのディレクトリパス(絶対パス)~
~
-URL~
HTMLのリンク生成時に使用するMRTGが生成した画像ファイルの...
~
-ITEM~
グラフのファイル名を記載。1行で1項目を記載し複数行でグラ...
ITME一覧は以下のコマンドで取得できる。
ls -la | grep .old | awk '{printf "ITEM %s\n",$9}' | sed...
~
-サンプル
SERVERNAME ServerName
DATADIR /home/mrtg/data/server
URL /mrtg/data/server
ITEM server_2
ITEM cpu_load
ITEM rmem
ITEM vmem
ITEM disk1
**mrtg-index.cgi [#k7584d4a]
実行するには以下の箇所に設定を記載する必要がある。
~
-LOGOIMG~
MRTGのロゴ画像ファイルが保管されているURLパスを指定。~
~
-TEMPDIR~
一時ファイルの生成場所を指定。一時ファイルはapacheの実行...
~
実行時には以下の様に引数を与える。
/mrtg/mrtg-index.cgi?/home/mrtg/data/server/index.conf
~
-ソース~
#!/bin/sh
# ------------------------
# MRTG index.cgi
# ------------------------
# Version : 1.0
# date : 2007/12/27
export LANG=C
export PATH=/bin:/sbin:/usr/bin:/usr/sbin:$PATH
## Set
LOGOIMG="/mrtg/img"
TEMPDIR=/home/httpd/mrtg/tmp
## Check
if [ -f $1 ]; then
INDEXCONF=$1
else
echo Content-type: text/html
echo
echo "<HTML><HEAD><TITLE>Script Error Page</TITLE></HEA...
echo "Script Parm Error<BR>"
echo $1"<BR>"
echo "</CENTER></BODY></HTML>"
exit 0
fi
## Exec
RAND=`date +%Y%m%d%H%M%S`
DATADIR=`grep DATADIR $INDEXCONF | awk '{print $2}'`
SERVERNAME=`grep SERVERNAME $INDEXCONF | awk '{print $2}'`
OUTPUT=$TEMPDIR/$RAND.html
ITEMCOUNT=`grep ITEM $INDEXCONF | wc -l`
ITEMLIST=$TEMPDIR/$RAND.txt
TODAY=`date +%Y/%m/%d\ %H:%M:%S`
URLDATA=`grep URL $INDEXCONF | awk '{print $2}'`
## Init
echo "" > $OUTPUT
grep ITEM $INDEXCONF > $ITEMLIST
## HTML OUTPUT
# Header
cat <<EOF >> $OUTPUT
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitiona...
<HTML>
<HEAD>
<TITLE>$SERVERNAME</TITLE>
<meta http-equiv="content-type" content="text/html; ...
<META HTTP-EQUIV="Refresh" CONTENT="300" >
<META HTTP-EQUIV="Cache-Control" content="no-cache" >
<META HTTP-EQUIV="Pragma" CONTENT="no-cache" >
<META HTTP-EQUIV="Expires" CONTENT="Wed, 26 Dec 2007...
<LINK HREF="favicon.ico" rel="shortcut icon" >
<style type="text/css">
body {
background-color: #ffffff;
}
div {
border-bottom: 2px solid #aaa;
padding-bottom: 10px;
margin-bottom: 5px;
}
div h2 {
font-size: 1.2em;
}
div.graph img {
margin: 5px 0;
}
div.graph table, div#legend table {
font-size: .8em;
}
div.graph table td {
padding: 0 10px;
text-align: right;
}
div table .in th, div table td span.in {
color: #00cc00;
}
div table .out th, div table td span.out {
color: #0000ff;
}
div#legend th {
text-align: right;
}
div#footer {
border: none;
font-size: .8em;
font-family: Arial, Helvetica, sans-serif;
width: 476px;
}
div#footer img {
border: none;
height: 25px;
}
div#footer address {
text-align: right;
}
div#footer #version {
margin: 0;
padding: 0;
float: left;
width: 88px;
text-align: right;
}
</style>
</HEAD>
<BODY bgcolor="#ffffff" text="#000000" link="#000000" vl...
<CENTER>
<TABLE width="90%">
<TR><TD width="90%" colspan="3"><HR></TD></TR>
<TR>
<TD width="25%"></TD>
<TD width="50%"><FONT size="5">$SERVERNAME</FONT></TD>
<TD width="25%" valign="bottom"><FONT size="2">$TODAY</...
<TR><TD width="90%" colspan="3"><HR></TD></TR>
</TABLE>
<TABLE BORDER=0 CELLPADDING=0 CELLSPACING=10>
EOF
# Body
i=1
while [ $i -le $ITEMCOUNT ];
do
ITMENAME=`sed -n -e ${i}"p" $ITEMLIST | awk '{print $2}'`
ITEMTITLE=`grep title $DATADIR/$ITMENAME.html | sed -n ...
GRAPHITME=`grep -A24 "End Head" $DATADIR/$ITMENAME.html ...
if [ -f $DATADIR/$ITMENAME.html ]; then
cat <<EOF >> $OUTPUT
<TR>
<TD align="left">
<B>$ITEMTITLE</B>
</TD>
</TR>
<TR><TD>
<div class="graph">
<A href=$URLDATA/$ITMENAME.html>
<IMG border="1" src=$URLDATA/$ITMENAME-day.png>
</A><BR>
$GRAPHITME
</DIV>
</TD></TR>
EOF
fi
i=$(($i+1))
done
# Footer
cat <<EOF >> $OUTPUT
</TABLE>
<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
<TR>
<TD WIDTH=63><A
HREF="http://oss.oetiker.ch/mrtg/"><IMG
BORDER=0 SRC="$LOGOIMG/mrtg-l.png" WIDTH=63 HEIGHT=2...
<TD WIDTH=25><A
HREF="http://oss.oetiker.ch/mrtg/"><IMG
BORDER=0 SRC="$LOGOIMG/mrtg-m.png" WIDTH=25 HEIGHT=2...
<TD WIDTH=388><A
HREF="http://oss.oetiker.ch/mrtg/"><IMG
BORDER=0 SRC="$LOGOIMG/mrtg-r.png" WIDTH=388 HEIGHT=25
ALT="Multi Router Traffic Grapher"></A></TD>
</TR>
</TABLE>
<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
<TR VALIGN=top>
<TD WIDTH=88 ALIGN=RIGHT><FONT FACE="Arial,Helvetica" ...
version 2.15.2</FONT></TD>
<TD WIDTH=388 ALIGN=RIGHT><FONT FACE="Arial,Helvetica"...
<A HREF="http://tobi.oetiker.ch/">Tobias Oetiker</A>
<A HREF="mailto:tobi+mrtglink@oetiker.ch"><tobi@oet...
and <A HREF="http://www.bungi.com/">Dave Ran...
</TD>
</TR>
</TABLE>
</CENTER>
</BODY>
</HTML>
EOF
## Disply HTML
echo Content-type: text/html
echo
cat $OUTPUT
## Delete Temp Files
rm $OUTPUT
rm $ITEMLIST
# EOF
ページ名: