#!/bin/sh src_dir=/usr/src start_time(){ start_time="$(date +%s)" echo -e " 33[35;1m$(date) Start install! 33[0m" } end_time(){ end_time="$(date +%s)" total_s=$(($end_time - $start_time)) total_m=$(($total_s / 60)) if [ $total_s -lt 60 ]; then time_en="${total_s} Seconds" else time_en="${total_m} Minutes" fi echo -e " 33[35;1m$0 runtime: ${time_en} 33[0m " echo -e " 33[35;1mTotal runtime: ${time_en} 33[0m" echo -e " 33[35;1m$(date) ALL Finish install! 33[0m" } start_time echo -e " 33[32;5m###Disabled SElinux### 33[0m" if [ `getenforce` == "Disabled" ];then echo "SElinux is Disabled" else sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config /usr/sbin/setenforce 0 fi echo -e " 33[32;5m###Check Perl### 33[0m" if [ -s /usr/bin/perl ];then perlversion=`perl -v |awk 'NR==2{print $4}'|sed 's/v//g'` echo -e " 33[34mPerlversion:$perlversion 33[0m" else yum -y install perl if [ $? -eq 0 ];then echo -e " 33[34m Install Perl SUCCESSFUL 33[0m" perlversion=perl -v |awk 'NR==2{print $4}'|sed 's/v//g' echo -e " 33[34mPerlversion:$perlversion 33[0m" else echo -e " 33[34m Install Perl FAILED 33[0m" fi fi #echo $perlversion download_src(){ cd $src_dir if [ -s rrdtool-1.4.7.tar.gz ];then echo -e " 33[34mrrdtool-1.4.7.tar.gz exist 33[0m" else wget http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.4.7.tar.gz fi if [ -s cgilib-0.7.tar.gz ];then echo -e " 33[34mcgilib-0.7.tar.gz exist 33[0m" else wget http://www.infodrom.org/projects/cgilib/download/cgilib-0.7.tar.gz fi if [ -s fping-3.4.tar.gz ];then echo -e " 33[34mfping-3.4.tar.gz exist 33[0m" else wget http://fping.org/dist/fping-3.4.tar.gz fi if [ -s echoping-6.0.2.tar.gz ];then echo -e " 33[34mechoping-6.0.2.tar.gz exist 33[0m" else wget http://sourceforge.net/projects/echoping/files/echoping/6.0.2/echoping-6.0.2.tar.gz/download fi if [ -s FCGI-0.74.tar.gz ];then echo -e " 33[34mFCGI-0.74.tar.gz exist 33[0m" else wget http://cpan.communilink.net/authors/id/F/FL/FLORA/FCGI-0.74.tar.gz fi if [ -s smokeping-2.6.8.tar.gz ];then echo -e " 33[34msmokeping-2.6.8.tar.gz exist 33[0m" else wget http://oss.oetiker.ch/smokeping/pub/smokeping-2.6.8.tar.gz fi } init_server(){ yum -y install gcc automake libtool libxml2-devel libpng-devel glib pango pango-devel freetype freetype-devel fontconfig cairo cairo-devel libart_lgpl libart_lgpl-devel && yum update -y if [ $? -eq 0 ];then echo -e " 33[34mInstall Required Packages SUCCESSFUL 33[0m" else echo -e " 33[33mInsatall Required Packages FAILED 33[0m" exit 1 fi } echo -e " 33[32;5m###Init Server### 33[0m" init_server if [ $? -eq 0 ];then echo -e " 33[36mInit Server SUCCESSFUL 33[0m" else echo -e " 33[35mInit Server Faild 33[0m" exit 1 fi #echo -e " 33[32;5m###Install Required Packages### 33[0m" install_packages(){ cd $src_dir echo -e " 33[32;5mInsatll rrdtool 33[0m" if [ -s /usr/local/rrdtool/bin/rrdtool ];then cp -rf /usr/local/rrdtool/lib/perl/$perlversion/x86_64-linux-thread-multi/ /usr/lib64/perl5/$perlversion/x86_64-linux-thread-multi/ echo -e " 33[34m;rrdtool exist 33[0m" else tar xf rrdtool-1.4.7.tar.gz -C $src_dir cd rrdtool-1.4.7 ./configure --prefix=/usr/local/rrdtool --disable-tcl --disable-python && make && make install if [ $? -eq 0 ];then cp -rf /usr/local/rrdtool/lib/perl/$perlversion/x86_64-linux-thread-multi/ /usr/lib64/perl5/$perlversion/x86_64-linux-thread-multi/ echo -e " 33[34mInstall rrdtool SUCCESSFUL 33[0m" else echo -e " 33[33mInstall rrdtool FAILED 33[0m" exit 1 fi fi cd $src_dir echo -e " 33[32;5mInstall cgilib 33[0m" if [ -s /usr/local/bin/cgitest ];then echo -e " 33[34m;cgilib exist 33[0m" else tar xf cgilib-0.7.tar.gz cd cgilib-0.7 aclocal && autoconf && libtoolize --force && automake --add-missing --foreign && ./configure && make && make install if [ $? -eq 0 ];then echo -e " 33[34mInstall cgilib SUCCESSFUL 33[0m" else echo -e " 33[33mInstall cgilib FAILED 33[0m" exit 1 fi fi cd $src_dir echo -e " 33[32;5mInstall fping 33[0m" if [ -s /usr/local/sbin/fping ];then cp /usr/local/sbin/fping /usr/sbin/fping echo -e " 33[34mfping exist 33[0m" else tar xf fping-3.4.tar.gz cd fping-3.4 ./configure && make && make install if [ $? -eq 0 ];then cp /usr/local/sbin/fping /usr/sbin/fping echo -e " 33[34mInstall fping SUCCESSFUL 33[0m" else echo -e " 33[33mInstall fping FAILED 33[0m" exit 1 fi fi cd $src_dir echo -e " 33[32;5mInstall echoping 33[0m" if [ -s /usr/local/bin/echoping ];then echo -e " 33[34mechoping exist 33[0m" else tar xf echoping-6.0.2.tar.gz cd echoping-6.0.2 ./configure --without-libidn && make && make install if [ $? -eq 0 ];then echo -e " 33[34mInstall echoping SUCCESSFUL 33[0m" else echo -e " 33[33mInstall echoping FAILED 33[0m" exit 1 fi fi cd $src_dir echo -e " 33[32;5mInstall FCGI 33[0m" if [ -d /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/auto/FCGI/ ];then echo -e " 33[34mFCGI exist 33[0m" else tar xf FCGI-0.74.tar.gz cd FCGI-0.74 perl Makefile.PL && make && make install if [ $? -eq 0 ];then echo -e " 33[34mInstall FCGI SUCCESSFUL 33[0m" else echo -e " 33[33mInstall FCGI FAILED 33[0m" exit 1 fi fi cd $src_dir echo -e " 33[32;5mInstall Smokeping 33[0m" export PERL5LIB=/usr/lib64/perl5/$perlversion/x86_64-linux-thread-multi/ tar xf smokeping-2.6.8.tar.gz cd smokeping-2.6.8 ./setup/build-perl-modules.sh /usr/local/smokeping/thirdparty && ./configure --prefix=/usr/local/smokeping && make && make install if [ $? -eq 0 ];then echo -e " 33[34mInstall Smokeping SUCCESSFUL 33[0m" else echo -e " 33[33mInstall Smokeping FAILED 33[0m" exit 1 fi } echo -e " 33[32;5m###Check Required Packages### 33[0m" download_src if [ $? -eq 0 ];then echo -e " 33[36mDownload Packages SUCCESSFUL 33[0m" else echo -e " 33[35mDownload Packages FAILD 33[0m" exit 1 fi echo -e " 33[32;5m###Install Packages### 33[0m" install_packages if [ $? -eq 0 ];then echo -e " 33[36mInstall Packages SUCCESSFUL 33[0m" else echo -e " 33[35mInstall Packages FAILD 33[0m" exit 1 fi echo -e " 33[34mConfigure Smokeping 33[0m" mkdir -v /usr/local/smokeping/data chmod -v 777 /usr/local/smokeping/data mkdir -v /usr/local/smokeping/cache chmod -v 777 /usr/local/smokeping/cache mkdir -v /usr/local/smokeping/var cd /usr/local/smokeping/etc/ cp -av config.dist config sed -i 's#owner = Peter Random#owner = ChinaCache GNOC#g' config sed -i 's#contact = some@address.nowhere#contact = ccna-noc@chinacache.com#g' config sed -i 's#imgcache = /usr/local/smokeping/cache#imgcache = /usr/local/smokeping/cache#g' config sed -i 's#imgurl = cache#imgurl = ../cache#g' config sed -i 's*use lib qw(/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/); # PERL5LIB*use lib qw(/usr/local/rrdtool/lib/perl);*g' /usr/local/smokeping/bin/smokeping sed -i "8 ause lib qw(/usr/local/smokeping/lib);" /usr/local/smokeping/bin/smokeping #datadir = /usr/local/smokeping/data #piddir = /usr/local/smokeping/var #binary = /usr/sbin/fping cat>>/usr/local/smokeping/etc/secret.txt<