#!/bin/bash #==== Includes===================================== cd /usr/src/mor . "$(pwd)"/sh_scripts/install_configs.sh . "$(pwd)"/sh_scripts/mor_install_functions.sh #====end of Includes=========================== which_os # keep it here, do not remove PSWS=`< /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c10` ( cd /sys/class/net && printf "%s\n" * ) >/tmp/interfaces if [ $OS = "CENTOS" ]; then if [ ! -f /tmp/elunastats.tar.gz ]; then cd /tmp rm -rf stats rm -rf elunastats wget http://$KOLMISOFT_IP/packets/elunastats.tar.gz tar xvfz elunastats.tar.gz fi if [ ! -d /var/www/html/stats ]; then mkdir -p /var/www/html/stats cd /tmp/stats rpm --install /tmp/stats/rr/libart_lgpl-2.3.17-4.i386.rpm rpm --install /tmp/stats/rr/libart_lgpl-devel-2.3.17-4.i386.rpm rpm --install /tmp/stats/rr/rrdtool-1.2.19-1.el5.kb.i386.rpm tar xvfz /tmp/stats/DateTime-0.4501.tar.gz tar xvfz /tmp/stats/DateTime-Locale-0.42.tar.gz tar xvfz /tmp/stats/DateTime-TimeZone-0.8301.tar.gz tar xvfz /tmp/stats/HTML-Template-2.9.tar.gz tar xvfz /tmp/stats/HTML-Template-Expr-0.07.tar.gz tar xvfz /tmp/stats/List-MoreUtils-0.22.tar.gz tar xvfz /tmp/stats/Params-Validate-0.91.tar.gz tar xvfz /tmp/stats/Parse-RecDescent-1.96.0.tar.gz tar xvfz /tmp/stats/version-0.76.tar.gz tar xvfz /tmp/stats/elunastats.tar.gz cp -R /tmp/stats/stats /var/www/html cd /tmp/stats/DateTime-0.4501 perl Makefile.PL make make install cd /tmp/stats/DateTime-Locale-0.42 perl Makefile.PL make make install cd /tmp/stats/DateTime-TimeZone-0.8301 perl Makefile.PL make make install cd /tmp/stats/HTML-Template-2.9 perl Makefile.PL make make install cd /tmp/stats/HTML-Template-Expr-0.07 perl Makefile.PL make make install cd /tmp/stats/List-MoreUtils-0.22 perl Makefile.PL make make install cd /tmp/stats/Params-Validate-0.91 perl Makefile.PL make make install cd /tmp/stats/Parse-RecDescent-1.96.0 perl Makefile.PL make make install cd /tmp/stats/version-0.76 perl Makefile.PL make make install rm -rf /tmp/stats rm -rf /tmp/elunastats.tar.gz cd /tmp checkforcgi=`cat /etc/httpd/conf/httpd.conf | grep /var/www/html/stats/` if [ ! "$checkforcgi" = "" ]; then echo " AddHandler cgi-script .pl Options +ExecCGI DirectoryIndex index.pl " >>/etc/httpd/conf/httpd.conf # apache will be restarted later fi fi #done with install #cron check checkforcron=`crontab -l | grep /var/www/html/stats/update.pl` rm -rf /tmp/crontab.tmp crontab -l >/tmp/crontab.tmp # test() if [ ! "$checkforcron" = "*/5 * * * * /var/www/html/stats/update.pl" ]; then echo "*/5 * * * * /var/www/html/stats/update.pl" >>/tmp/crontab.tmp fi /usr/bin/crontab /tmp/crontab.tmp #(main) for interfacename2 in `cat /tmp/interfaces`; do if [ ! -d /var/www/html/stats/rrd/${interfacename2}_in ]; then mkdir -p /var/www/html/stats/rrd/${interfacename2}_in fi biginterfacename2=$(awk -v v="$interfacename2" 'BEGIN{print toupper(v)}') # translate var to VAR if [ ! -f /var/www/html/stats/rrd/${interfacename2}_in/create.sh ]; then echo "#!/bin/bash rrdtool create ${interfacename2}_in.rrd \\ --start \`date +%s\` \\ --step 300 \\ DS:in:COUNTER:600:0:U \\ RRA:AVERAGE:0.5:1:2016 \\ RRA:AVERAGE:0.5:6:1344 \\ RRA:AVERAGE:0.5:24:732 \\ RRA:AVERAGE:0.5:144:1460" >>/var/www/html/stats/rrd/${interfacename2}_in/create.sh chmod 755 /var/www/html/stats/rrd/${interfacename2}_in/create.sh fi if [ ! -f /var/www/html/stats/rrd/${interfacename2}_in/graph.pm ]; then echo "\$GRAPH_TITLES{'${interfacename2}_in'} = \"{#server#} - $interfacename2 Inbound Traffic\"; \$GRAPH_CMDS{'${interfacename2}_in'} = <<\"${biginterfacename2}_IN_GRAPH_CMD\"; --title \"{#server#} - $biginterfacename2 Inbound Traffic\" --vertical-label=\"Bytes\" --lower-limit 0 DEF:in={#path#}${interfacename2}_in.rrd:in:AVERAGE AREA:in{#color5#}:\"Inbound \" GPRINT:in:LAST:\"Current\\\: %5.2lf %s \" GPRINT:in:AVERAGE:\"Average\\\: %5.2lf %s \" GPRINT:in:MAX:\"Maximum\\\: %5.2lf %s\\\n\" LINE1:in{#linecolor#} ${biginterfacename2}_IN_GRAPH_CMD 1; # Return true" >>/var/www/html/stats/rrd/${interfacename2}_in/graph.pm chmod 755 /var/www/html/stats/rrd/${interfacename2}_in/graph.pm fi if [ ! -f /var/www/html/stats/rrd/${interfacename2}_in/update.sh ]; then echo "#!/bin/bash rrdtool update ${interfacename2}_in.rrd \\ -t in \\ N:\`/sbin/ifconfig $interfacename2 |grep bytes|cut -d\":\" -f2|cut -d\" \" -f1\`" >>/var/www/html/stats/rrd/${interfacename2}_in/update.sh chmod 755 /var/www/html/stats/rrd/${interfacename2}_in/update.sh fi done #OUT #-----------------------create $interface_out---------------------------------------------- for interfacename in `cat /tmp/interfaces`; do if [ ! -d /var/www/html/stats/rrd/${interfacename}_out ]; then mkdir -p /var/www/html/stats/rrd/${interfacename}_out fi #$a = expr `ls | tail -n 1 | awk '{split ($0,a,"_"); print a[1]}'` + 1 biginterfacename=$(awk -v v="$interfacename" 'BEGIN{print toupper(v)}') # translate var to VAR #echo $biginterfacename #${interface}_out if [ ! -f /var/www/html/stats/rrd/${interfacename}_out/create.sh ]; then #GEN create.sh $interface_out---------------------------------------------------------------- echo -n "#!/bin/bash rrdtool create " >>/var/www/html/stats/rrd/${interfacename}_out/create.sh echo -n "$interfacename" >>/var/www/html/stats/rrd/${interfacename}_out/create.sh echo -n "_out.rrd \\ --start \`date +%s\` \\ --step 300 \\ DS:out:COUNTER:600:0:U \\ RRA:AVERAGE:0.5:1:2016 \\ RRA:AVERAGE:0.5:6:1344 \\ RRA:AVERAGE:0.5:24:732 \\ RRA:AVERAGE:0.5:144:1460" >>/var/www/html/stats/rrd/${interfacename}_out/create.sh chmod 755 /var/www/html/stats/rrd/${interfacename}_out/create.sh fi #----------------------------------------------------------end of gen create.sh if [ ! -f /var/www/html/stats/rrd/${interfacename}_out/graph.pm ]; then #GEN graph.pm $interface_out------------------------------------------------------------------------- echo -n "\$GRAPH_TITLES{'" >>/var/www/html/stats/rrd/${interfacename}_out/graph.pm echo -n "$interfacename" >>/var/www/html/stats/rrd/${interfacename}_out/graph.pm echo -n "_out'} = \"{#server#} - $biginterfacename Outbound Traffic\"; \$GRAPH_CMDS{'" >>/var/www/html/stats/rrd/${interfacename}_out/graph.pm echo -n "$interfacename" >>/var/www/html/stats/rrd/${interfacename}_out/graph.pm echo -n "_out'} = <<\"" >>/var/www/html/stats/rrd/${interfacename}_out/graph.pm echo -n "$biginterfacename" >>/var/www/html/stats/rrd/${interfacename}_out/graph.pm echo -n "_OUT_GRAPH_CMD\"; --title \"{#server#} - $biginterfacename Outbound Traffic\" --vertical-label=\"Bytes\" --lower-limit 0 DEF:out={#path#}" >>/var/www/html/stats/rrd/${interfacename}_out/graph.pm echo -n "$interfacename" >>/var/www/html/stats/rrd/${interfacename}_out/graph.pm echo -n "_out.rrd:out:AVERAGE AREA:out{#color5#}:\"Outbound \" GPRINT:out:LAST:\"Current\\\: %5.2lf %s \" GPRINT:out:AVERAGE:\"Average\\\: %5.2lf %s \" GPRINT:out:MAX:\"Maximum\\\: %5.2lf %s\\\n\" LINE1:out{#linecolor#}" >>/var/www/html/stats/rrd/${interfacename}_out/graph.pm echo "" >>/var/www/html/stats/rrd/${interfacename}_out/graph.pm echo -n "$biginterfacename" >>/var/www/html/stats/rrd/${interfacename}_out/graph.pm echo "_OUT_GRAPH_CMD 1; # Return true" >>/var/www/html/stats/rrd/${interfacename}_out/graph.pm chmod 755 /var/www/html/stats/rrd/${interfacename}_out/graph.pm fi #----------------------------------------------------------------END OF GEN graph.pm if [ ! -f /var/www/html/stats/rrd/${interfacename}_out/update.sh ]; then #GEN update.pl $interface_out---------------------------------------------------- echo -n "#!/bin/bash rrdtool update " >>/var/www/html/stats/rrd/${interfacename}_out/update.sh echo -n "$interfacename" >>/var/www/html/stats/rrd/${interfacename}_out/update.sh echo -n "_out.rrd \\ -t out \\ N:\`/sbin/ifconfig $interfacename |grep bytes|cut -d\":\" -f3|cut -d\" \" -f1\`" >>/var/www/html/stats/rrd/${interfacename}_out/update.sh chmod 755 /var/www/html/stats/rrd/${interfacename}_out/update.sh fi #----------------------------------------------------------------- done # gen psw if [ ! -f /var/www/html/stats/.htpasswd ]; then touch /var/www/html/stats/.htpasswd htpasswd -b -m /var/www/html/stats/.htpasswd admin $PSWS rm -rf /root/statspassword touch /root/statsPassword echo "Your Login and Password from stats system is: admin $PSWS" >/root/statsPassword fi if [ ! -f /var/www/html/stats/.htaccess ]; then touch /var/www/html/stats/.htaccess echo "AuthUserFile /var/www/html/stats/.htpasswd AuthName \"Restricted access, password located in /root/statsPassword file\" AuthType Basic Require valid-user" > /var/www/html/stats/.htaccess /etc/init.d/httpd restart fi chmod 777 /var/www/html/stats/graphs echo "Updating... (This can take some minutes to complete if running first time)" exec /var/www/html/stats/update.pl #if [ $OS = "CENTOS" ]; then #done for centos elif [ $OS = "DEBIAN" ]; then checkforcgi2=`cat /etc/apache2/apache2.conf | grep /var/www/stats/` if [ ! "$checkforcgi2" = "" ]; then echo " AddHandler cgi-script .pl Options +ExecCGI DirectoryIndex index.pl " >>/etc/apache2/apache2.conf fi if [ ! -f /usr/bin/rrdtool ]; then apt-get -y install rrdtool fi ( cd /sys/class/net && printf "%s\n" * ) >/tmp/interfaces if [ ! -f /tmp/elunastats.tar.gz ]; then cd /tmp rm -rf stats rm -rf elunastats wget http://$KOLMISOFT_IP/packets/elunastats.tar.gz tar xvfz elunastats.tar.gz fi if [ ! -d /var/www/stats ]; then mkdir -p /var/www/stats cd /tmp/stats tar xvfz /tmp/stats/DateTime-0.4501.tar.gz tar xvfz /tmp/stats/DateTime-Locale-0.42.tar.gz tar xvfz /tmp/stats/DateTime-TimeZone-0.8301.tar.gz tar xvfz /tmp/stats/HTML-Template-2.9.tar.gz tar xvfz /tmp/stats/HTML-Template-Expr-0.07.tar.gz tar xvfz /tmp/stats/List-MoreUtils-0.22.tar.gz tar xvfz /tmp/stats/Params-Validate-0.91.tar.gz tar xvfz /tmp/stats/Parse-RecDescent-1.96.0.tar.gz tar xvfz /tmp/stats/version-0.76.tar.gz tar xvfz /tmp/stats/elunastats.tar.gz cp -R /tmp/stats/stats /var/www cd /tmp/stats/DateTime-0.4501 perl Makefile.PL make make install cd /tmp/stats/DateTime-Locale-0.42 perl Makefile.PL make make install cd /tmp/stats/DateTime-TimeZone-0.8301 perl Makefile.PL make make install cd /tmp/stats/HTML-Template-2.9 perl Makefile.PL make make install cd /tmp/stats/HTML-Template-Expr-0.07 perl Makefile.PL make make install cd /tmp/stats/List-MoreUtils-0.22 perl Makefile.PL make make install cd /tmp/stats/Params-Validate-0.91 perl Makefile.PL make make install cd /tmp/stats/Parse-RecDescent-1.96.0 perl Makefile.PL make make install cd /tmp/stats/version-0.76 perl Makefile.PL make make install rm -rf /tmp/stats rm -rf /tmp/elunastats.tar.gz cd /tmp fi #done with install #cron check and maybe install() checkforcron=`crontab -l | grep /var/www/stats/update.pl` rm -rf /tmp/crontab.tmp crontab -l >/tmp/crontab.tmp # test() if [ ! "$checkforcron" = "*/5 * * * * /var/www/stats/update.pl" ]; then echo "*/5 * * * * /var/www/stats/update.pl" >>/tmp/crontab.tmp fi /usr/bin/crontab /tmp/crontab.tmp #(main) for interfacename2 in `cat /tmp/interfaces`; do if [ ! -d /var/www/stats/rrd/${interfacename2}_in ]; then mkdir -p /var/www/stats/rrd/${interfacename2}_in fi biginterfacename2=$(awk -v v="$interfacename2" 'BEGIN{print toupper(v)}') # translate var to VAR #' if [ ! -f /var/www/stats/rrd/${interfacename2}_in/create.sh ]; then echo "#!/bin/bash rrdtool create ${interfacename2}_in.rrd --start \`date +%s\` --step 300 DS:in:COUNTER:600:0:U RRA:AVERAGE:0.5:1:2016 RRA:AVERAGE:0.5:6:1344 RRA:AVERAGE:0.5:24:732 RRA:AVERAGE:0.5:144:1460" >>/var/www/stats/rrd/${interfacename2}_in/create.sh chmod 755 /var/www/stats/rrd/${interfacename2}_in/create.sh fi if [ ! -f /var/www/stats/rrd/${interfacename2}_in/graph.pm ]; then echo "\$GRAPH_TITLES{'${interfacename2}_in'} = \"{#server#} - $interfacename2 Inbound Traffic\"; \$GRAPH_CMDS{'${interfacename2}_in'} = <<\"${biginterfacename2}_IN_GRAPH_CMD\"; --title \"{#server#} - $biginterfacename2 Inbound Traffic\" --vertical-label=\"Bytes\" --lower-limit 0 DEF:in={#path#}${interfacename2}_in.rrd:in:AVERAGE AREA:in{#color5#}:\"Inbound \" GPRINT:in:LAST:\"Current\\\: %5.2lf %s \" GPRINT:in:AVERAGE:\"Average\\\: %5.2lf %s \" GPRINT:in:MAX:\"Maximum\\\: %5.2lf %s\\\n\" LINE1:in{#linecolor#} ${biginterfacename2}_IN_GRAPH_CMD 1; # Return true" >>/var/www/stats/rrd/${interfacename2}_in/graph.pm chmod 755 /var/www/stats/rrd/${interfacename2}_in/graph.pm fi if [ ! -f /var/www/stats/rrd/${interfacename2}_in/update.sh ]; then echo "#!/bin/bash rrdtool update ${interfacename2}_in.rrd -t in N:\`/sbin/ifconfig $interfacename2 |grep bytes|cut -d\":\" -f2|cut -d\" \" -f1\`" >>/var/www/stats/rrd/${interfacename2}_in/update.sh chmod 755 /var/www/stats/rrd/${interfacename2}_in/update.sh fi done #OUT #-----------------------create $interface_out---------------------------------------------- for interfacename in `cat /tmp/interfaces`; do if [ ! -d /var/www/stats/rrd/${interfacename}_out ]; then mkdir -p /var/www/stats/rrd/${interfacename}_out fi #$a = expr `ls | tail -n 1 | awk '{split ($0,a,"_"); print a[1]}'` + 1 biginterfacename=$(awk -v v="$interfacename" 'BEGIN{print toupper(v)}') # translate var to VAR #echo $biginterfacename #${interface}_out #' if [ ! -f /var/www/html/rrd/${interfacename}_out/create.sh ]; then #GEN create.sh $interface_out---------------------------------------------------------------- echo -n "#!/bin/bash rrdtool create " >>/var/www/stats/rrd/${interfacename}_out/create.sh echo -n "$interfacename" >>/var/www/stats/rrd/${interfacename}_out/create.sh echo -n "_out.rrd --start \`date +%s\` --step 300 DS:out:COUNTER:600:0:U RRA:AVERAGE:0.5:1:2016 RRA:AVERAGE:0.5:6:1344 RRA:AVERAGE:0.5:24:732 RRA:AVERAGE:0.5:144:1460" >>/var/www/stats/rrd/${interfacename}_out/create.sh chmod 755 /var/www/stats/rrd/${interfacename}_out/create.sh fi #----------------------------------------------------------end of gen create.sh if [ ! -f /var/www/stats/rrd/${interfacename}_out/graph.pm ]; then #GEN graph.pm $interface_out------------------------------------------------------------------------- echo -n "\$GRAPH_TITLES{'" >>/var/www/stats/rrd/${interfacename}_out/graph.pm echo -n "$interfacename" >>/var/www/stats/rrd/${interfacename}_out/graph.pm echo -n "_out'} = \"{#server#} - $biginterfacename Outbound Traffic\"; \$GRAPH_CMDS{'" >>/var/www/stats/rrd/${interfacename}_out/graph.pm echo -n "$interfacename" >>/var/www/stats/rrd/${interfacename}_out/graph.pm echo -n "_out'} = <<\"" >>/var/www/stats/rrd/${interfacename}_out/graph.pm echo -n "$biginterfacename" >>/var/www/stats/rrd/${interfacename}_out/graph.pm echo -n "_OUT_GRAPH_CMD\"; --title \"{#server#} - $biginterfacename Outbound Traffic\" --vertical-label=\"Bytes\" --lower-limit 0 DEF:out={#path#}" >>/var/www/stats/rrd/${interfacename}_out/graph.pm echo -n "$interfacename" >>/var/www/stats/rrd/${interfacename}_out/graph.pm echo -n "_out.rrd:out:AVERAGE AREA:out{#color5#}:\"Outbound \" GPRINT:out:LAST:\"Current\\\: %5.2lf %s \" GPRINT:out:AVERAGE:\"Average\\\: %5.2lf %s \" GPRINT:out:MAX:\"Maximum\\\: %5.2lf %s\\\n\" LINE1:out{#linecolor#}" >>/var/www/stats/rrd/${interfacename}_out/graph.pm echo "" >>/var/www/stats/rrd/${interfacename}_out/graph.pm echo -n "$biginterfacename" >>/var/www/stats/rrd/${interfacename}_out/graph.pm echo "_OUT_GRAPH_CMD 1; # Return true" >>/var/www/stats/rrd/${interfacename}_out/graph.pm chmod 755 /var/www/stats/rrd/${interfacename}_out/graph.pm fi #----------------------------------------------------------------END OF GEN graph.pm if [ ! -f /var/www/stats/rrd/${interfacename}_out/update.sh ]; then #GEN update.pl $interface_out---------------------------------------------------- echo -n "#!/bin/bash rrdtool update " >>/var/www/stats/rrd/${interfacename}_out/update.sh echo -n "$interfacename" >>/var/www/stats/rrd/${interfacename}_out/update.sh echo -n "_out.rrd -t out N:\`/sbin/ifconfig $interfacename |grep bytes|cut -d\":\" -f3|cut -d\" \" -f1\`" >>/var/www/stats/rrd/${interfacename}_out/update.sh chmod 755 /var/www/stats/rrd/${interfacename}_out/update.sh fi #----------------------------------------------------------------- done # gen if [ ! -f /var/www/stats/.htpasswd ]; then touch /var/www/stats/.htpasswd htpasswd -b -m /var/www/stats/.htpasswd admin $PSWS rm -rf /root/statspassword touch /root/statsPassword echo "Your Login and Password from stats system is: admin $PSWS" >/root/statsPassword fi if [ ! -f /var/www/stats/.htaccess ]; then touch /var/www/stats/.htaccess echo "AuthUserFile /var/www/stats/.htpasswd AuthName \"Restricted access, password located in /root/statsPassword file\" AuthType Basic Require valid-user" > /var/www/stats/.htaccess /etc/init.d/apache2 restart fi chmod 777 /var/www/stats/graphs echo "Updating... (This can take some minutes to complete if running first time)" exec /var/www/stats/update.pl fi #done for DEBIAN #------------------------------------END------------------------------------------