make-mrtg.cfg.awk
上传用户:shbosideng
上传日期:2013-05-04
资源大小:1555k
文件大小:8k
- BEGIN {
- #
- ## Global Variables Initialization (Feel you free to edit as needed)
- #
- #
- mrtg_var_WorkDir = "/usr/local/mrtg/contrib/net-hosts" # it will be inserted into MRTG config file
- mrtg_var_IconDir = "http://www.your.domain/img/" # it will be inserted into MRTG config file and it will be used on HTML documents
- mrtg_var_Interval = "5" # it will be inserted into MRTG config file
- mrtg_executable = "/usr/local/mrtg/mrtg" # MRTG executable file with full path
- mrtg_nethosts_cfg = "/usr/local/mrtg/contrib/net-hosts/mrtg-awk.cfg" # MRTG config file for net-hosts
- nethosts_internet_path = "/usr/local/mrtg/contrib/net-hosts" # the path for internet IPs file (without / at the end)
- nethosts_css_file = "http://www.your.domain/css/mrtg/net-hosts.css" # CSS File definition for HTML documents
- nethosts_maintainer_email = "Your Name <your@email.address>" # Maintainer email address
- #
- ## Start index number for array
- #
- lines = 1
- startdate = systime()
- dataexpirarii = startdate+300 # Expire date for HTML documents, +5 min (mrtg_var_Interval)
- dataexp = strftime("%c %Z", dataexpirarii)
- dataexpirarii = strftime("%d-%m-%Y %T %Z",dataexpirarii)
- system((">" mrtg_nethosts_cfg))
- }
- {
- #
- # The state from fping for every IP is inserted into array
- state=$2$3
- ip=$1
- array[lines,1] = ip
- array[lines,2] = state
- lines++
- }
- END {
- close(FILENAME)
- #
- ## Variables Definition
- #
- header="<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
- <HTML>
- <HEAD>
- <META HTTP-EQUIV="Refresh" CONTENT="300">
- <META HTTP-EQUIV="Pragma" CONTENT="no-cache">
- <META HTTP-EQUIV="Expires" CONTENT=""dataexp"">
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <link rel="STYLESHEET" type="text/css" href="" nethosts_css_file "">
- <TITLE>Internet Conection Statistics Overview</TITLE>
- </HEAD>
- <BODY>
- <H1 CLASS="h1"><A HREF="javascript:history.back();">Main Index</A> +++ Internet Conection Statistics Overview</H1>"
- footer="<BR></BODY></HTML>"
- #
- lastmod=("<CENTER><SMALL>Last modified: <FONT STYLE="color: darkblue;">" strftime("%d-%m-%Y %T %Z",startdate) "</FONT>.</SMALL></CENTER>")
- expire="<CENTER><SMALL>Expire on: <FONT STYLE="color: darkblue;">"dataexpirarii"</FONT>.</SMALL></CENTER>"
- #
- tablestart="<TABLE BORDER=0 WIDTH="100%">
- <TR>
- <TH CLASS="pth">Index</TH>
- <TH CLASS="pth">Name</TH>
- <TH CLASS="pth">IP</TH>
- <TH CLASS="pth">Status</TH>
- <TH CLASS="pth">Last Changed On</TH>
- </TR>"
- tableend="</table><BR>"
- #
- startraw="<TR>"
- endrow="</TR>"
- #
- startcell="<TD CLASS="ptb">"
- endcell="</TD>"
- #
- startlongcell="<TD CLASS="ptb" COLSPAN="5">"
- #
- imgdown=("<IMG SRC="" mrtg_var_IconDir "redball.gif">")
- imgup=("<IMG SRC="" mrtg_var_IconDir "grnball.gif">")
- #
- pstart="<P CLASS="ptb">"
- pend="</P>"
- #
- ##
- #
- print header > (mrtg_var_WorkDir "/internet.html")
- print tablestart >> (mrtg_var_WorkDir "/internet.html")
- #
- #
- print ("WorkDir: " mrtg_var_WorkDir) > mrtg_nethosts_cfg
- print ("IconDir: " mrtg_var_IconDir) > mrtg_nethosts_cfg
- print ("Interval: " mrtg_var_Interval) > mrtg_nethosts_cfg
- print "nn#----------------------------------------------------------------------------nn" > mrtg_nethosts_cfg
- #
- ##
- #
- xx = 1
- kontor = 0
- succesiv = "0"
- #
- ## Fping results processing
- #
- while ((getline line < (nethosts_internet_path "/internet")) > 0 ){
- split(line, l, ":")
- for ( i = 1 ; i < lines; i++ ){
- if ( array[i, 1] == l[1] ){
- break
- }
- }
- if ( l[4] == 1 ){
- last_state = "isalive"
- }
- else {
- last_state = "isdad"
- }
- myfun(xx, i, l[2], l[3], last_state)
- i++
- xx++
- }
- close((nethosts_internet_path "/internet"))
- #
- ##
- #
- print tableend >> (mrtg_var_WorkDir "/internet.html")
- print lastmod >> (mrtg_var_WorkDir "/internet.html")
- print expire >> (mrtg_var_WorkDir "/internet.html")
- print footer >> (mrtg_var_WorkDir "/internet.html")
- #
- ##
- #
- system(("mv -f " nethosts_internet_path "/tmpinternet " nethosts_internet_path "/internet"))
- system((mrtg_executable " " mrtg_nethosts_cfg " 2> /dev/null"))
- }
- function myfun(f_rindex, f_index, f_name, f_olddate, f_last_state)
- {
- if( ! f_olddate ){
- f_olddate = startdate
- }
- #
- if(array[f_index, 2] == "isalive"){
- statew = 1
- succesiv = "0"
- kontor = 0
- if ( f_last_state == array[f_index, 2] ) {
- datew = f_olddate
- }
- else {
- datew = startdate
- }
- print array[f_index, 1]":"f_name":"datew":"statew > (nethosts_internet_path "/tmpinternet")
- print startrow startcell f_rindex endcell > (mrtg_var_WorkDir "/internet.html")
- print (startcell "<A HREF="" tolower(f_name) ".html">" f_name "</A>" endcell) > (mrtg_var_WorkDir "/internet.html")
- print startcell array[f_index, 1] endcell > (mrtg_var_WorkDir "/internet.html")
- print startcell imgup endcell > (mrtg_var_WorkDir "/internet.html")
- print startcell strftime("%c %Z", datew) endcell > (mrtg_var_WorkDir "/internet.html")
- print endrow > (mrtg_var_WorkDir "/internet.html")
- print "Target[" f_name "]: `echo | awk '{ print "1\n1\n..., last changed on: " strftime("%c %Z", datew) "\n" array[f_index, 1] "\n"; exit }'`" > mrtg_nethosts_cfg
- }
- else {
- statew = 0
- if( succesiv == "0" ){
- succesiv = "1"
- }
- kontor++
- if ( f_last_state == array[f_index, 2] ) {
- datew = f_olddate
- }
- else {
- datew = startdate
- }
- print array[f_index, 1]":"f_name":"datew":"statew > (nethosts_internet_path "/tmpinternet")
- print startrow startcell f_rindex endcell > (mrtg_var_WorkDir "/internet.html")
- print (startcell "<A HREF="" tolower(f_name) ".html">" f_name "</A>" endcell) > (mrtg_var_WorkDir "/internet.html")
- print startcell array[f_index, 1] endcell > (mrtg_var_WorkDir "/internet.html")
- print startcell imgdown endcell > (mrtg_var_WorkDir "/internet.html")
- print startcell strftime("%c %Z", datew) endcell > (mrtg_var_WorkDir "/internet.html")
- print endrow > (mrtg_var_WorkDir "/internet.html")
- print "Target[" f_name "]: `echo | awk '{ print "0\n0\n..., last changed on: " strftime("%c %Z", datew) "\n" array[f_index, 1] "\n"; exit }'`" > mrtg_nethosts_cfg
- }
- print "Title[" f_name "]: " f_name > mrtg_nethosts_cfg
- print "MaxBytes[" f_name "]: 1" > mrtg_nethosts_cfg
- print "AbsMax[" f_name "]: 1" > mrtg_nethosts_cfg
- print ("AddHead[" f_name "]: <link rel="STYLESHEET" type="text/css" href="" nethosts_css_file "">") > mrtg_nethosts_cfg
- print ("PageTop[" f_name "]: <H1 CLASS="h1"><A HREF="javascript:history.back();"><IMG SRC="" mrtg_var_IconDir "cubprev.gif" BORDER="0"></A> Connection State for <CODE><B>" f_name "</B></CODE>") > mrtg_nethosts_cfg
- print " </H1>" > mrtg_nethosts_cfg
- print " <TABLE>" > mrtg_nethosts_cfg
- print " <TR><TD CLASS="ptb">System:</TD><TD CLASS="pth"><B>" f_name " (" array[f_index, 1] ")</B></TD></TR>" > mrtg_nethosts_cfg
- print (" <TR><TD CLASS="ptb">Maintainer:</TD><TD CLASS="pth"><B>" nethosts_maintainer_email "</B></TD></TR>") > mrtg_nethosts_cfg
- print " <TR><TD CLASS="ptb">Service:</TD><TD CLASS="pth"><B>Internet Connection</B></TD></TR>" > mrtg_nethosts_cfg
- print " <TR><TD CLASS="ptb">IP:</TD><TD CLASS="pth"><B>" f_name " (" array[f_index, 1] ")</B></TD></TR>" > mrtg_nethosts_cfg
- print " <TR><TD CLASS="ptb">Last Changed On:</TD><TD CLASS="pth"><B>" strftime("%c %Z", datew) "</B></TD></TR>" > mrtg_nethosts_cfg
- print " </TABLE>" > mrtg_nethosts_cfg
- print "Supress[" f_name "]: y" > mrtg_nethosts_cfg
- print "LegendI[" f_name "]: used" > mrtg_nethosts_cfg
- print "LegendO[" f_name "]: " > mrtg_nethosts_cfg
- print "Legend1[" f_name "]: used
" > mrtg_nethosts_cfg
- print "Legend2[" f_name "]:
" > mrtg_nethosts_cfg
- print "YLegend[" f_name "]: used
" > mrtg_nethosts_cfg
- print "ShortLegend[" f_name "]: used
" > mrtg_nethosts_cfg
- print "Options[" f_name "]: gauge" > mrtg_nethosts_cfg
- print "YTics[" f_name "]: 1" > mrtg_nethosts_cfg
- print "nn#-------------------nn" > mrtg_nethosts_cfg
- }