yum install -y gcc gcc-c++ freetype freetype-devel zlib-devel libart_lgpl-devel libpng-devel
mkdir /usr/install
cd /usr/install/
wget http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.2.19.tar.gz
tar zxfv rrdtool-1.2.19.tar.gz
cd rrdtool-1.2.19
./configure --prefix=/usr --enable-perl-site-install
make -j16
make install
make site-perl-install
mkdir /var/rrd
cat > /etc/rrd.sh
#!/usr/bin/perl
#
# copyright Martin Pot 2003
# http://martybugs.net/linux/rrdtool/traffic.cgi
#
# rrd_traffic.pl
use RRDs;
# define location of rrdtool databases
my $rrd = '/var/rrd';
# define location of images
my $img = '/var/rrd';
# process data for each interface (add/delete as required)
&ProcessInterface("eth0", "local network");
&ProcessInterface("venet0", "internet gateway");
sub ProcessInterface
{
# process interface
# inputs: $_[0]: interface name (ie, eth0/eth1/eth2/ppp0)
# $_[1]: interface description
# get network interface info
my $in = `ifconfig $_[0] |grep bytes|cut -d":" -f2|cut -d" " -f1`;
my $out = `ifconfig $_[0] |grep bytes|cut -d":" -f3|cut -d" " -f1`;
# remove eol chars
chomp($in);
chomp($out);
print "$_[0] traffic in, out: $in, $out\n";
# if rrdtool database doesn't exist, create it
if (! -e "$rrd/$_[0].rrd")
{
print "creating rrd database for $_[0] interface...\n";
RRDs::create "$rrd/$_[0].rrd",
"-s 300",
"DS:in:DERIVE:600:0:12500000",
"DS:out:DERIVE:600:0:12500000",
"RRA:AVERAGE:0.5:1:576",
"RRA:AVERAGE:0.5:6:672",
"RRA:AVERAGE:0.5:24:732",
"RRA:AVERAGE:0.5:144:1460";
}
# insert values into rrd
RRDs::update "$rrd/$_[0].rrd",
"-t", "in:out",
"N:$in:$out";
# create traffic graphs
&CreateGraph($_[0], "day", $_[1]);
&CreateGraph($_[0], "week", $_[1]);
&CreateGraph($_[0], "month", $_[1]);
&CreateGraph($_[0], "year", $_[1]);
}
sub CreateGraph
{
# creates graph
# inputs: $_[0]: interface name (ie, eth0/eth1/eth2/ppp0)
# $_[1]: interval (ie, day, week, month, year)
# $_[2]: interface description
RRDs::graph "$img/$_[0]-$_[1].png",
"-s -1$_[1]",
"-t traffic on $_[0] :: $_[2]",
"--lazy",
"-h", "80", "-w", "600",
"-l 0",
"-a", "PNG",
"-v bytes/sec",
"DEF:in=$rrd/$_[0].rrd:in:AVERAGE",
"DEF:out=$rrd/$_[0].rrd:out:AVERAGE",
"CDEF:out_neg=out,-1,*",
"AREA:in#32CD32:Incoming",
"LINE1:in#336600",
"GPRINT:in:MAX: Max\\: %5.1lf %s",
"GPRINT:in:AVERAGE: Avg\\: %5.1lf %S",
"GPRINT:in:LAST: Current\\: %5.1lf %Sbytes/sec\\n",
"AREA:out_neg#4169E1:Outgoing",
"LINE1:out_neg#0033CC",
"GPRINT:out:MAX: Max\\: %5.1lf %S",
"GPRINT:out:AVERAGE: Avg\\: %5.1lf %S",
"GPRINT:out:LAST: Current\\: %5.1lf %Sbytes/sec",
"HRULE:0#000000";
if ($ERROR = RRDs::error) { print "$0: unable to generate $_[0] $_[1] traffic graph: $ERROR\n"; }
}
chmod +x /etc/rrd.sh
ssh-keygen -t rsa
cat /root/.ssh/id_rsa.pub
%cat >> authorized_keys
cat > /etc/rrdcp.sh
#!/bin/sh
for i in {day,week,month,year};do /usr/bin/scp /var/rrd/eth0-$i.png rrd@193.192.247.9:/home/304/usr/home/swisshos/public_html/rrd/VPS0703Beth0-$i.png;done
chmod +x /etc/rrdcp.sh
cat >> /etc/crontab
*/5 * * * * root /etc/rrd.sh
*/5 * * * * root /etc/rrdcp.sh
/etc/rrdcp.sh
yum install -y gcc gcc-c++ freetype freetype-devel zlib-devel libart_lgpl-devel libpng-devel mkdir /usr/install cd /usr/install/ wget http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.2.19.tar.gz tar zxfv rrdtool-1.2.19.tar.gz cd rrdtool-1.2.19 ./configure --prefix=/usr --enable-perl-site-install make -j16 make install make site-perl-install mkdir /var/rrd cat > /etc/rrd.sh
#!/usr/bin/perl # # copyright Martin Pot 2003 # http://martybugs.net/linux/rrdtool/traffic.cgi # # rrd_traffic.pl use RRDs; # define location of rrdtool databases my $rrd = '/var/rrd'; # define location of images my $img = '/var/rrd'; # process data for each interface (add/delete as required) &ProcessInterface("eth0", "local network"); &ProcessInterface("venet0", "internet gateway"); sub ProcessInterface { # process interface # inputs: $_[0]: interface name (ie, eth0/eth1/eth2/ppp0) # $_[1]: interface description # get network interface info my $in = `ifconfig $_[0] |grep bytes|cut -d":" -f2|cut -d" " -f1`; my $out = `ifconfig $_[0] |grep bytes|cut -d":" -f3|cut -d" " -f1`; # remove eol chars chomp($in); chomp($out); print "$_[0] traffic in, out: $in, $out\n"; # if rrdtool database doesn't exist, create it if (! -e "$rrd/$_[0].rrd") { print "creating rrd database for $_[0] interface...\n"; RRDs::create "$rrd/$_[0].rrd", "-s 300", "DS:in:DERIVE:600:0:12500000", "DS:out:DERIVE:600:0:12500000", "RRA:AVERAGE:0.5:1:576", "RRA:AVERAGE:0.5:6:672", "RRA:AVERAGE:0.5:24:732", "RRA:AVERAGE:0.5:144:1460"; } # insert values into rrd RRDs::update "$rrd/$_[0].rrd", "-t", "in:out", "N:$in:$out"; # create traffic graphs &CreateGraph($_[0], "day", $_[1]); &CreateGraph($_[0], "week", $_[1]); &CreateGraph($_[0], "month", $_[1]); &CreateGraph($_[0], "year", $_[1]); } sub CreateGraph { # creates graph # inputs: $_[0]: interface name (ie, eth0/eth1/eth2/ppp0) # $_[1]: interval (ie, day, week, month, year) # $_[2]: interface description RRDs::graph "$img/$_[0]-$_[1].png", "-s -1$_[1]", "-t traffic on $_[0] :: $_[2]", "--lazy", "-h", "80", "-w", "600", "-l 0", "-a", "PNG", "-v bytes/sec", "DEF:in=$rrd/$_[0].rrd:in:AVERAGE", "DEF:out=$rrd/$_[0].rrd:out:AVERAGE", "CDEF:out_neg=out,-1,*", "AREA:in#32CD32:Incoming", "LINE1:in#336600", "GPRINT:in:MAX: Max\\: %5.1lf %s", "GPRINT:in:AVERAGE: Avg\\: %5.1lf %S", "GPRINT:in:LAST: Current\\: %5.1lf %Sbytes/sec\\n", "AREA:out_neg#4169E1:Outgoing", "LINE1:out_neg#0033CC", "GPRINT:out:MAX: Max\\: %5.1lf %S", "GPRINT:out:AVERAGE: Avg\\: %5.1lf %S", "GPRINT:out:LAST: Current\\: %5.1lf %Sbytes/sec", "HRULE:0#000000"; if ($ERROR = RRDs::error) { print "$0: unable to generate $_[0] $_[1] traffic graph: $ERROR\n"; } }
chmod +x /etc/rrd.sh ssh-keygen -t rsa cat /root/.ssh/id_rsa.pub %cat >> authorized_keys cat > /etc/rrdcp.sh
#!/bin/sh for i in {day,week,month,year};do /usr/bin/scp /var/rrd/eth0-$i.png rrd@193.192.247.9:/home/304/usr/home/swisshos/public_html/rrd/VPS0703Beth0-$i.png;done
chmod +x /etc/rrdcp.sh cat >> /etc/crontab */5 * * * * root /etc/rrd.sh */5 * * * * root /etc/rrdcp.sh /etc/rrdcp.sh