All pastes #77321 Raw Edit

Miscellany

public shellscript v1 · immutable
·published 2006-07-02 22:07 UTC
rendered paste body
#!/bin/bashpath="${1}/modules/net";. $path/include.sh;	# ------------------------------------------	# Remplissage de la base de donnéesfor i in $ifaces;{ 	# On calcule la moyenne sur 5 minutes :	TX="$(cat /proc/net/dev|grep $i|cut -d":" -f2|tr -s " "|cut -d " " -f9)";	RX="$(cat /proc/net/dev|grep $i|cut -d":" -f2|tr -s " "|cut -d " " -f1)";	TXp="$(cat /proc/net/dev|grep $i|cut -d":" -f2|tr -s " "|cut -d " " -f10)";	RXp="$(cat /proc/net/dev|grep $i|cut -d":" -f2|tr -s " "|cut -d " " -f2)";		# On crée une partie de la chaine nécessaire au remplissage de la base de données	eval $i="$(		echo -n ":";		echo -n $TX;		echo -n ":";		echo -n $RX;		echo -n ":";		echo -n $TXp;		echo -n ":";		echo -n $RXp;		)";		# On remplit les fichiers temporaires	echo $TXnew $RXnew $TXpnew $RXpnew > $tempdir/stats.$i.tmp}	# On remplit la base de donnéesplop="N$(for i in `eval echo $ifaces`;	{       			eval "tmp=\$$i";			echo -n $tmp;	}       	echo "";)";$rrdtoolbin update $rrdfile $plop;# Génration des graphes# ------------------------------------------# Génération des variables suivant le type de graphe# time_name -> intitulé sur le png créé# average -> moyenne sur n minutes# prefix -> préfixe du fichier créé# time_warp -> décalage en secondes par rapport à l'instant présentcase $2 in        week)        time_name="7 days";        average="30";        prefix="weekly";        time_warp="-s-604800";;        month)        time_name="30 days";        average="30";        prefix="monthly";        time_warp="-s-2592000";;        year)        time_name="one year";        average="30";        prefix="yearly";        time_warp="-s-31536000";;        day)        time_name="24 hours";        average="5";        prefix="daily";        time_warp="";;esac# Génération réelle des graphesif [ -n "$prefix" ];	then	for i in $ifaces; do		for j in bytes packets; do				$rrdtoolbin graph $htmldir/net_${i}_${j}_${prefix}.png \			        --title="$i ${time_name} variations (${average} minutes average) [${j}]" \			        -aPNG -h${g_height} -w${g_width} -l0 ${time_warp} -v ${j}/s -E \			        -c "BACK#${out_colors[0]}" -c "SHADEA#${out_colors[1]}" -c "SHADEB#${out_colors[2]}" \        			-c "FONT#${out_colors[3]}" -c "CANVAS#${out_colors[4]}" -c "GRID#${out_colors[5]}" \        			-c "MGRID#${out_colors[6]}" -c "FRAME#${out_colors[7]}" -c "ARROW#${out_colors[8]}" \			        DEF:TX2=$rrdfile:${j}TX${i}:AVERAGE \	    		    DEF:RX=$rrdfile:${j}RX${i}:AVERAGE \					CDEF:TX=TX2,-1,\* \		        	CDEF:TX_2=TX,0.98,\* AREA:TX_2#${get_in[0]}:"${i} ${j} out/sec" \					GPRINT:TX:MAX:"Max\\: %2.lf ${j}/s" \					GPRINT:TX:AVERAGE:"Average\\: %2.lf ${j}/s" \					GPRINT:TX:LAST:"Current\\: %2.lf ${j}/s \\n" \        			CDEF:TX_10=TX,0.90,\* AREA:TX_10#${get_in[1]} \        			CDEF:TX_15=TX,0.85,\* AREA:TX_15#${get_in[2]} \        			CDEF:TX_20=TX,0.80,\* AREA:TX_20#${get_in[3]} \        			CDEF:TX_25=TX,0.75,\* AREA:TX_25#${get_in[4]} \        			CDEF:TX_30=TX,0.70,\* AREA:TX_30#${get_in[5]} \        			CDEF:TX_35=TX,0.65,\* AREA:TX_35#${get_in[6]} \        			CDEF:TX_40=TX,0.60,\* AREA:TX_40#${get_in[7]} \        			CDEF:TX_45=TX,0.55,\* AREA:TX_45#${get_in[8]} \        			CDEF:TX_50=TX,0.50,\* AREA:TX_50#${get_in[9]} \        			CDEF:TX_55=TX,0.45,\* AREA:TX_55#${get_in[10]} \        			CDEF:TX_60=TX,0.40,\* AREA:TX_60#${get_in[11]} \        			CDEF:TX_65=TX,0.35,\* AREA:TX_65#${get_in[12]} \        			CDEF:TX_70=TX,0.30,\* AREA:TX_70#${get_in[13]} \        			CDEF:TX_75=TX,0.25,\* AREA:TX_75#${get_in[14]} \        			CDEF:TX_80=TX,0.20,\* AREA:TX_80#${get_in[15]} \        			CDEF:TX_85=TX,0.15,\* AREA:TX_85#${get_in[16]} \					CDEF:TXof=TX2,`eval echo '${'lim_${i}_${j}'[0]}'`,GT,TX,0,IF \					CDEF:TXof_2=TXof,0.98,\* AREA:TXof_2#${get_of[0]} \					CDEF:TXof_10=TXof,0.90,\* AREA:TXof_10#${get_of[1]} \        			CDEF:TXof_15=TXof,0.85,\* AREA:TXof_15#${get_of[2]} \        			CDEF:TXof_20=TXof,0.80,\* AREA:TXof_20#${get_of[3]} \        			CDEF:TXof_25=TXof,0.75,\* AREA:TXof_25#${get_of[4]} \        			CDEF:TXof_30=TXof,0.70,\* AREA:TXof_30#${get_of[5]} \        			CDEF:TXof_35=TXof,0.65,\* AREA:TXof_35#${get_of[6]} \        			CDEF:TXof_40=TXof,0.60,\* AREA:TXof_40#${get_of[7]} \        			CDEF:TXof_45=TXof,0.55,\* AREA:TXof_45#${get_of[8]} \        			CDEF:TXof_50=TXof,0.50,\* AREA:TXof_50#${get_of[9]} \        			CDEF:TXof_55=TXof,0.45,\* AREA:TXof_55#${get_of[10]} \        			CDEF:TXof_60=TXof,0.40,\* AREA:TXof_60#${get_of[11]} \        			CDEF:TXof_65=TXof,0.35,\* AREA:TXof_65#${get_of[12]} \        			CDEF:TXof_70=TXof,0.30,\* AREA:TXof_70#${get_of[13]} \        			CDEF:TXof_75=TXof,0.25,\* AREA:TXof_75#${get_of[14]} \        			CDEF:TXof_80=TXof,0.20,\* AREA:TXof_80#${get_of[15]} \        			CDEF:TXof_85=TXof,0.15,\* AREA:TXof_85#${get_of[16]} \        			CDEF:RX_2=RX,0.98,\* AREA:RX_2#${get_out[0]}:"${i} ${j} in/sec " \					GPRINT:RX:MAX:"Max\\: %2.lf ${j}/s" \					GPRINT:RX:AVERAGE:"Average\\: %2.lf ${j}/s" \					GPRINT:RX:LAST:"Current\\: %2.lf ${j}/s\\n" \					CDEF:RX_10=RX,0.90,\* AREA:RX_10#${get_out[1]} \			        CDEF:RX_15=RX,0.85,\* AREA:RX_15#${get_out[2]} \			        CDEF:RX_20=RX,0.80,\* AREA:RX_20#${get_out[3]} \        			CDEF:RX_25=RX,0.75,\* AREA:RX_25#${get_out[4]} \        			CDEF:RX_30=RX,0.70,\* AREA:RX_30#${get_out[5]} \        			CDEF:RX_35=RX,0.65,\* AREA:RX_35#${get_out[6]} \        			CDEF:RX_40=RX,0.60,\* AREA:RX_40#${get_out[7]} \        			CDEF:RX_45=RX,0.55,\* AREA:RX_45#${get_out[8]} \        			CDEF:RX_50=RX,0.50,\* AREA:RX_50#${get_out[9]} \        			CDEF:RX_55=RX,0.45,\* AREA:RX_55#${get_out[10]} \        			CDEF:RX_60=RX,0.40,\* AREA:RX_60#${get_out[11]} \        			CDEF:RX_65=RX,0.35,\* AREA:RX_65#${get_out[12]} \        			CDEF:RX_70=RX,0.30,\* AREA:RX_70#${get_out[13]} \        			CDEF:RX_75=RX,0.25,\* AREA:RX_75#${get_out[14]} \        			CDEF:RX_80=RX,0.20,\* AREA:RX_80#${get_out[15]} \        			CDEF:RX_85=RX,0.15,\* AREA:RX_85#${get_out[16]} \					CDEF:RXof=RX,`eval echo '${'lim_${i}_${j}'[1]}'`,GT,RX,0,IF \					CDEF:RXof_2=RXof,0.98,\* AREA:RXof_2#${get_of[0]} \					CDEF:RXof_10=RXof,0.90,\* AREA:RXof_10#${get_of[1]} \        			CDEF:RXof_15=RXof,0.85,\* AREA:RXof_15#${get_of[2]} \        			CDEF:RXof_20=RXof,0.80,\* AREA:RXof_20#${get_of[3]} \        			CDEF:RXof_25=RXof,0.75,\* AREA:RXof_25#${get_of[4]} \        			CDEF:RXof_30=RXof,0.70,\* AREA:RXof_30#${get_of[5]} \        			CDEF:RXof_35=RXof,0.65,\* AREA:RXof_35#${get_of[6]} \        			CDEF:RXof_40=RXof,0.60,\* AREA:RXof_40#${get_of[7]} \        			CDEF:RXof_45=RXof,0.55,\* AREA:RXof_45#${get_of[8]} \        			CDEF:RXof_50=RXof,0.50,\* AREA:RXof_50#${get_of[9]} \        			CDEF:RXof_55=RXof,0.45,\* AREA:RXof_55#${get_of[10]} \        			CDEF:RXof_60=RXof,0.40,\* AREA:RXof_60#${get_of[11]} \        			CDEF:RXof_65=RXof,0.35,\* AREA:RXof_65#${get_of[12]} \        			CDEF:RXof_70=RXof,0.30,\* AREA:RXof_70#${get_of[13]} \        			CDEF:RXof_75=RXof,0.25,\* AREA:RXof_75#${get_of[14]} \        			CDEF:RXof_80=RXof,0.20,\* AREA:RXof_80#${get_of[15]} \        			CDEF:RXof_85=RXof,0.15,\* AREA:RXof_85#${get_of[16]} \					LINE1:0#FFFFFF \			        CDEF:nodat2=TX,RX,+,UN,NEGINF,UNKN,IF \			        AREA:nodat2#444444\   			        CDEF:nodat=TX,RX,+,UN,INF,UNKN,IF \			        AREA:nodat#444444:"NoData\\n" \					COMMENT:"Last update \\: `date|sed -e 's/:/\\\\:/g'`\r"		done;	done;fi;