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=" \ \ \ \ \ \ \ \ Internet Conection Statistics Overview \ \ \

Main Index +++ Internet Conection Statistics Overview

" footer="
" # lastmod=("
Last modified: " strftime("%d-%m-%Y %T %Z",startdate) ".
") expire="
Expire on: "dataexpirarii".
" # tablestart=" \ \ \ \ \ \ \ " tableend="
IndexNameIPStatusLast Changed On

" # startraw="" endrow="" # startcell="" endcell="" # startlongcell="" # imgdown=("") imgup=("") # pstart="

" pend="

" # ## # 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 "\n\n#----------------------------------------------------------------------------\n\n" > 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 "" f_name "" 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 "" f_name "" 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 "]: ") > mrtg_nethosts_cfg print ("PageTop[" f_name "]:

Connection State for   " f_name "") > mrtg_nethosts_cfg print "

" > mrtg_nethosts_cfg print " " > mrtg_nethosts_cfg print " " > mrtg_nethosts_cfg print (" ") > mrtg_nethosts_cfg print " " > mrtg_nethosts_cfg print " " > mrtg_nethosts_cfg print " " > mrtg_nethosts_cfg print "
System:" f_name " (" array[f_index, 1] ")
Maintainer:" nethosts_maintainer_email "
Service:Internet Connection
IP:" f_name " (" array[f_index, 1] ")
Last Changed On:" strftime("%c %Z", datew) "
" > 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 "\n\n#-------------------\n\n" > mrtg_nethosts_cfg }