lepus 一键安装脚本

来源:互联网 发布:粤语网络女歌手排行榜 编辑:程序博客网 时间:2024/05/22 00:44

最近把开源的lepus做了一些定制改造,主要是让他监控我们的分布式mysql集群。修改了他的php和python代码。

后来发现这个东西安装比较麻烦,安装前要有php、python、httpd、snmpd环境,并且要有mysql数据库来存储数据(我为其内置了一个mysql。并把端口设置为3388)。

为了安装简单,我写了一个一键安装脚本,执行一个安装命令,就会自动安装完所有东西。并且把lepus启动项添加到linux自启动中去。

下面是安装脚本(目前这个只支持CentOs的6.5版本)。

#!/bin/shcur_dir=`dirname $0`cd $cur_dirlog_file="$cur_dir/install.log"  install_dir="/usr/local/lepus"DO_LOG(){  declare time=`date "+%Y-%m-%d %H:%M:%S"`  echo "[$time]$*"  echo "[$time]$*">>$log_file}DO_WARN_LOG(){  declare time=`date "+%Y-%m-%d %H:%M:%S"`  echo -e "\033[33m[$time]WARNING:$*\033[0m"  echo "[$time]$*">>$log_file}DO_ERR_LOG(){  declare time=`date "+%Y-%m-%d %H:%M:%S"`  echo -e "\033[31m[$time]ERROR:$*\033[0m"  echo "[$time]$*">>$log_file}DO_SUCC_LOG(){  declare time=`date "+%Y-%m-%d %H:%M:%S"`  echo -e "\033[32m[$time]SUCCESS:$*\033[0m"  echo "[$time]$*">>$log_file}check_env(){  declare time=`date "+%Y%m%d%H%M%S"`  declare check_flag   check_flag=`cat /etc/redhat-release |grep "CentOS release 6.5"|wc -l`  if [ $check_flag -eq 0 ];then    DO_ERR_LOG "The os is not CentOS release 6.5 "     exit 1  else    DO_SUCC_LOG "The os is CentOS release 6.5 "  fi     if [ -d $install_dir ];then    rm -f lepus-$time.bak    tar zpcv -f lepus-$time.bak $install_dir >/dev/null 2>&1    rm -rf $install_dir/*  else    mkdir -p $install_dir  fi}prepare_gcc_env(){  declare r_flag=0  DO_LOG "start prepare gcc environment ... "  cd Pkg_Centos-6.5/gcc/  rpm -ivh ppl-0.10.2-11.el6.x86_64.rpm >/dev/null 2>&1  rpm -ivh mpfr-2.4.1-6.el6.x86_64.rpm >/dev/null 2>&1  rpm -ivh cpp-4.4.7-4.el6.x86_64.rpm >/dev/null 2>&1  rpm -ivh cloog-ppl-0.15.7-1.2.el6.x86_64.rpm >/dev/null 2>&1  rpm -ivh gcc-4.4.7-4.el6.x86_64.rpm >/dev/null 2>&1  DO_SUCC_LOG "Finished prepare gcc environment successfully "  cd - >/dev/null 2>&1  return $r_flag}down_selinux_iptables(){ sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config  setenforce 0 iptables -F  chkconfig --level 2345 iptables off }prepare_snmpd_env(){  declare r_flag=0  DO_LOG "start prepare snmpd environment ... "  cd Pkg_Centos-6.5/snmpd/  rpm -ivh lm_sensors-libs-3.1.1-17.el6.x86_64.rpm >/dev/null 2>&1  rpm -ivh net-snmp-libs-5.5-49.el6.x86_64.rpm >/dev/null 2>&1  rpm -ivh net-snmp-5.5-49.el6.x86_64.rpm >/dev/null 2>&1  rpm -ivh net-snmp-utils-5.5-49.el6.x86_64.rpm >/dev/null 2>&1  DO_SUCC_LOG "Finished prepare snmpd environment successfully "  cd - >/dev/null 2>&1  return $r_flag}prepare_httpd_env(){  declare r_flag=0  DO_LOG "start prepare httpd environment ... "  cd Pkg_Centos-6.5/httpd/  rpm -ev --nodeps httpd-2.2.15-29.el6.centos.x86_64 >/dev/null 2>&1  rpm -ev --nodeps apr-util-ldap-1.3.9-3.el6_0.1.x86_64 >/dev/null 2>&1  rpm -ev --nodeps httpd-tools-2.2.15-29.el6.centos.x86_64 >/dev/null 2>&1  rpm -ev --nodeps apr-util-1.3.9-3.el6_0.1.x86_64 >/dev/null 2>&1  rpm -ev --nodeps apr-1.3.9-5.el6_2.x86_64 >/dev/null 2>&1  rpm -ivh apr-1.3.9-5.el6_2.x86_64.rpm >>$log_file 2>&1;[ $? -ne 0 ] &&r_flag=1  rpm -ivh apr-util-1.3.9-3.el6_0.1.x86_64.rpm >>$log_file 2>&1;[ $? -ne 0 ] &&r_flag=1  rpm -ivh httpd-tools-2.2.15-29.el6.centos.x86_64.rpm >>$log_file 2>&1;[ $? -ne 0 ] &&r_flag=1  rpm -ivh apr-util-ldap-1.3.9-3.el6_0.1.x86_64.rpm >>$log_file 2>&1;[ $? -ne 0 ] &&r_flag=1  rpm -ivh httpd-2.2.15-29.el6.centos.x86_64.rpm >>$log_file 2>&1;[ $? -ne 0 ] &&r_flag=1    /etc/init.d/httpd start >>$log_file 2>&1  /sbin/chkconfig --level 2345 httpd on  cd - >/dev/null 2>&1  if [ $r_flag -eq 0 ];then    DO_SUCC_LOG "Finished prepare httpd environment successfully "  else    DO_ERR_LOG "Finished prepare httpd environment unsuccessfully "    exit 1  fi  return $r_flag}prepare_php_env(){   declare r_flag=0  DO_LOG "start prepare php environment ... "  cd Pkg_Centos-6.5/php/  rpm -ev --nodeps php-mysql-5.3.3-26.el6.x86_64 >/dev/null 2>&1  rpm -ev --nodeps php-pdo-5.3.3-26.el6.x86_64 >/dev/null 2>&1  rpm -ev --nodeps php-5.3.3-26.el6.x86_64 >/dev/null 2>&1  rpm -ev --nodeps php-cli-5.3.3-26.el6.x86_64 >/dev/null 2>&1  rpm -ev --nodeps php-common-5.3.3-26.el6.x86_64 >/dev/null 2>&1  rpm -ivh php-common-5.3.3-26.el6.x86_64.rpm >>$log_file 2>&1;[ $? -ne 0 ] &&r_flag=1  rpm -ivh php-cli-5.3.3-26.el6.x86_64.rpm >>$log_file 2>&1;[ $? -ne 0 ] &&r_flag=1  rpm -ivh php-5.3.3-26.el6.x86_64.rpm >>$log_file 2>&1;[ $? -ne 0 ] &&r_flag=1  rpm -ivh php-pdo-5.3.3-26.el6.x86_64.rpm >>$log_file 2>&1;[ $? -ne 0 ] &&r_flag=1  rpm -ivh php-mysql-5.3.3-26.el6.x86_64.rpm >>$log_file 2>&1;[ $? -ne 0 ] &&r_flag=1  cd - >/dev/null 2>&1  if [ $r_flag -eq 0 ];then    DO_SUCC_LOG "Finished prepare php environment successfully "  else    DO_ERR_LOG "Finished prepare php environment unsuccessfully "    exit 1  fi   return $r_flag}prepare_python_env(){  declare r_flag=0  declare v_mysql_config=""  DO_LOG "start prepare python environment ... "  cd Pkg_Centos-6.5/python/  rpm -ev --nodeps python-devel-2.6.6-51.el6.x86_64 >/dev/null 2>&1  rpm -ivh python-devel-2.6.6-51.el6.x86_64.rpm >>$log_file 2>&1;[ $? -ne 0 ] &&r_flag=1    if [ -d /usr/local/MySQLdb1-master ];then    rm -rf /usr/local/MySQLdb1-master  fi  unzip MySQLdb-python.zip -d /usr/local >>$log_file 2>&1;[ $? -ne 0 ] &&r_flag=1  v_mysql_config=`find $install_dir/mysql -name mysql_config`  if [ ! -z $v_mysql_config ];then    echo "mysql_config=$v_mysql_config" >>/usr/local/MySQLdb1-master/site.cfg    cd - >/dev/null 2>&1    cd /usr/local/MySQLdb1-master/    python setup.py build >>$log_file 2>&1;[ $? -ne 0 ] &&r_flag=1    python setup.py install >>$log_file 2>&1;[ $? -ne 0 ] &&r_flag=1  else    r_flag=1  fi  cd - >/dev/null 2>&1  if [ $r_flag -eq 0 ];then    DO_SUCC_LOG "Finished prepare python environment successfully "  else    DO_ERR_LOG "Finished prepare python environment unsuccessfully "    exit 1  fi  return $r_flag}prepare_mysql_env(){  declare r_flag=0  DO_LOG "start prepare mysql environment ... "  id mysql >/dev/null 2>&1  if [ $? -ne 0 ];then    useradd mysql  fi    if [ -f /sys/kernel/mm/transparent_hugepage/enabled ];then     echo never > /sys/kernel/mm/transparent_hugepage/enabled  fi    echo "if [ -f /sys/kernel/mm/transparent_hugepage/enabled ];then          echo never > /sys/kernel/mm/transparent_hugepage/enabled        fi">>/etc/rc.local  tar -zxvf mysql-lepus-151030.tar.gz -C $install_dir >/dev/null 2>&1;[ $? -ne 0 ] &&r_flag=1  sed -i "s+^basedir.*$+basedir=$install_dir\/mysql+" $install_dir/mysql/data/my.cnf >/dev/null 2>&1;[ $? -ne 0 ] &&r_flag=1  sed -i "s+^datadir.*$+datadir=$install_dir\/mysql\/data+" $install_dir/mysql/data/my.cnf >/dev/null 2>&1;[ $? -ne 0 ] &&r_flag=1  chown mysql.mysql -R $install_dir/mysql >/dev/null 2>&1;[ $? -ne 0 ] &&r_flag=1   rm -f /etc/init.d/mysql_lepus >/dev/null 2>&1;[ $? -ne 0 ] &&r_flag=1  cp $install_dir/mysql/support-files/mysql.server /etc/init.d/mysql_lepus >/dev/null 2>&1;[ $? -ne 0 ] &&r_flag=1  sed -i "45,48s+^basedir=.*$+basedir=$install_dir\/mysql+" /etc/init.d/mysql_lepus >/dev/null 2>&1;[ $? -ne 0 ] &&r_flag=1  sed -i "45,48s+^datadir=.*$+datadir=$install_dir\/mysql\/data+" /etc/init.d/mysql_lepus >/dev/null 2>&1;[ $? -ne 0 ] &&r_flag=1     echo "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$install_dir/mysql/lib" >>/root/.bash_profile  LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$install_dir/mysql/lib  export LD_LIBRARY_PATH   chmod +x /etc/init.d/mysql_lepus  >/dev/null 2>&1;[ $? -ne 0 ] &&r_flag=1  /etc/init.d/mysql_lepus start;[ $? -ne 0 ] &&r_flag=1    if [ $r_flag -eq 0 ];then    DO_SUCC_LOG "Finished prepare mysql environment successfully "  else    DO_ERR_LOG "Finished prepare mysql environment unsuccessfully "    exit 1  fi     return $r_flag }install_lepus(){  declare r_flag=0  DO_LOG "start install lepus  ... "  tar -zxvf lepus-python-151030.tar.gz -C $install_dir >/dev/null 2>&1;[ $? -ne 0 ] &&r_flag=1  chmod +x $install_dir/lepus/lepus*   rm -f /usr/local/sbin/lepus  ln -s $install_dir/lepus/lepus /usr/local/sbin/  rm -f /usr/local/sbin/lepus_monitor  ln -s $install_dir/lepus/lepus_monitor /usr/local/sbin/  rm -f /etc/init.d/lepus  ln -s $install_dir/lepus/lepus /etc/init.d/  /sbin/chkconfig --level 2345 lepus on   $install_dir/lepus/lepus start;[ $? -ne 0 ] &&r_flag=1    rm -rf /var/www/html/lepus   tar -zxvf lepus-php-151030.tar.gz -C /var/www/html/ >/dev/null 2>&1;[ $? -ne 0 ] &&r_flag=1    if [ $r_flag -eq 0 ];then    DO_SUCC_LOG "Finished install lepus successfully "  else    DO_ERR_LOG "Finished install lepus unsuccessfully "    exit 1  fi  return $r_flag}rm -f $log_filecheck_envdown_selinux_iptablesprepare_gcc_envprepare_snmpd_envprepare_httpd_envprepare_php_envprepare_mysql_envprepare_python_envinstall_lepus

安装测试


浏览器访问



需要说明的,我的安装脚本同目录的有自己定制化好了python后台监控tar包,和前台php包,还有已经初始化好数据的mysql包,以及需要的一个os包。








0 0