wuaji 发表于 2018-8-29 09:11:04

wdcp的环境搭建shell脚本分析--install.sh

#!/bin/bash  
###
  

  
#定义screen的名字,下面安装会用screen这个命令
  
SCREEN_NAME="lanmp"
  

  

  
#根据$UID判断用户是否为root,必须root才能执行
  
if [ $UID != 0 ]; then
  
    echo "You must be root to run the install script."
  
    exit
  
fi
  

  
#根据命令行参数判断,参数为un或者uninstall时,停止服务,删除文件,卸载掉整个WDCP服务
  
if [ "$1" == "un" -o "$1" == "uninstall" ]; then
  
    service httpd stop
  
    service nginxd stop
  
    service mysqld stop
  
    service pureftpd stop
  
    service wdapache stop
  
    #建立文件备份目录
  
    mkdir /www/backup
  
    bf=$(date +%Y%m%d)
  
    #打包数据库文件
  
    tar zcf /www/backup/mysqlbk_$bf.tar.gz /www/wdlinux/mysql/var
  
    rm -fr /www/wdlinux
  
    rm -f /tmp/*_ins.txt
  
    reboot
  
    exit
  
fi
  

  
#对当前系统中是否存在screen进程进行判断,如果已经存在lanmp的screen进程,则提示,并退出
  
if type -p screen >/dev/null && screen -ls |grep -q ".$SCREEN_NAME"; then
  
    echo "Seems another lanmp install session is taken place."
  
    echo "Rejoin this session plz type: 'screen -r $SCREEN_NAME'."
  
    exit 1
  
fi
  

  

  
#根据/etc/issue判断当前系统类型,然后根据type的返回结果,判断是否安装screen,没有安装,就进行安装
  

  
if grep -qi 'debian\|ubuntu' /etc/issue; then
  
    type -p screen >/dev/null || apt-get -y install screen
  
else
  
    type -p screen >/dev/null || yum -y install screen
  
fi
  

  

  
#准备安装的screen会话
  

  

  
#判断是否存在screen这个命令
  
if type -p screen >/dev/null; then
  
    #如果存在的话,执行下列命令,执行安装和配置LANMP环境
  
    screen -d -m -S $SCREEN_NAME -t lanmp -s /bin/bash
  
    sleep 1.5
  
    if [ -z "$SCREEN_HARDSTATUS" ]; then
  
      SCREEN_HARDSTATUS='%{= .} %-Lw%{= .}%> %n%f %t*%{= .}%+Lw%< %-=%{g}(%{d}%H/%l%{g})'
  
    fi
  
    screen -r $SCREEN_NAME -X hardstatus alwayslastline "$SCREEN_HARDSTATUS"
  
    NL=$(echo -ne '\015')
  
    screen -S $SCREEN_NAME -p lanmp -X stuff \
  
      "(./lanmp.sh|tee lanmp_ins.log);(./wdcp.sh|tee wdcp_ins.log)$NL"
  
    screen -r $SCREEN_NAME
  

  
#如果不存在的话,则先安装screen这个命令
  
else
  
    echo "Cannot find 'screen' command,install without screen(default yes)?"
  
    sleep 0.1
  
    read -p "(Yes/No): " i
  
    case $i in
  
      no|No|NO|n|N)
  
            echo "Please install 'screen' before install lanmp."
  
            echo "for ubuntu/debian: apt-get update && apt-get install screen"
  
            echo "for CentOS/RHEL: yum update && yum install screen"
  
            exit
  
            ;;
  
      *)
  
            ./lanmp.sh|tee lanmp_ins.log
  
            ./wdcp.sh|tee wdcp_ins.log
  
            ;;
  
    esac
  
fi


页: [1]
查看完整版本: wdcp的环境搭建shell脚本分析--install.sh