# $Header: /usr/local/cvsroot/scripts/ipfw_count.awk,v 1.5 2003/03/04 04:09:21 olivleh1 Exp $ /sbin/ipfw show | /usr/local/bin/gawk ' BEGIN { logpath="/usr/local/statistics/logging/ipfw/" } function write(filename,b_filename,integer) { if( (getline input < filename) == 1 ) { if( (getline backup < b_filename) == 1) { integer = integer+backup } } else { input = 0 } if ( (integer < input) || (input == 0) ) { #ipfw counter reset || new log printf("%f\n",input) > b_filename integer = integer+input; } printf("%f\n",integer) > filename integer=filename=b_filename=input=0 } / count ip / { pcks=$3 for (i=0;i 1) && (length(type) > 1 )) { y_filename=sprintf("%s/year/%s_-_%s_-_%s",logpath,strftime("%Y"),ip,type); by_filename=sprintf("%s/year/%s_-_%s",logpath,ip,type); m_filename=sprintf("%s/month/%s_-_%s_-_%s",logpath,strftime("%Y_%m"),ip,type); bm_filename=sprintf("%s/month/%s_-_%s",logpath,ip,type); w_filename=sprintf("%s/week/%s_-_%s_-_%s",logpath,strftime("%Y_%U"),ip,type); bw_filename=sprintf("%sweek/%s_-_%s",logpath,ip,type); d_filename=sprintf("%s/day/%s_-_%s_-_%s",logpath,strftime("%Y_%m_%d"),ip,type); bd_filename=sprintf("%s/day/%s_-_%s",logpath,ip,type); write(y_filename,by_filename,pcks); write(m_filename,bm_filename,pcks); write(w_filename,bw_filename,pcks); write(d_filename,bd_filename,pcks); } }'