zoukankan      html  css  js  c++  java
  • 自动搭建lamp架构,安装/卸载bbs论坛

     编写自动化安装工具脚本,具体要求如下 :

     1.  菜单函数实现显示界面

     2.  yum函数判断yum是否正常

     3.  安装rpm函数判断是否需要安装软件包,无法安装要退出脚本

     4.  删除rpm函数判断是否需要删除软件包,无法删除要退出脚本

     5.  重启服务函数,无法启动服务要退出脚本

     6.  mysql密码修改函数,无法修改密码要退出脚本

     7.  安装论坛函数

     8.  卸载论坛函数

     卸载论坛的时候,需要将安装的包都卸载,并且需要删除如下文件

     1.  DNS遗留文件

     2.  数据库遗留文件

     3.  apache遗留文件

     4.  LAMP论坛的遗留文件

    1. 自定义lib库函数:

    #!/bin/bash

    #comment

    ###### 菜单显示函数 ########

    menu(){

    echo

    echo -e " ***自动化安装工具*** "

    echo -e " 1. 自动安装LAMP论坛 "

    echo -e " 2. 自动卸载LAMP论坛 "

    echo -e " 0. 退出菜单 "

    echo -n -e " 你的选择是:"

    read -n1 choice

    }

    ###### 搭建yum源 ########

    myyum(){

    mkdir -p $DIR

    mount /dev/cdrom $DIR &> /dev/null

    yum clean all &> /dev/null

    rm -rf /etc/yum.repos.d/*

            cat << end > /etc/yum.repos.d/local.repo

    [Server]

    name=Server

    baseurl=file://$DIR/Server

    enabled=1

    gpgcheck=0

    end

    echo -e " yum is ok"

    }

    ###### yum 安装软件 #######

    yuminstall(){

    echo -e " 开始安装lamp需要到软件包..."

    for i in $SOFTS

    do

              rpm -q $i &> /dev/null

      if (( $?!=0 ))

       then

       yum install $i -y &> /dev/null 

        if (($?==0))

          then

                    echo -e " $i安装成功"

        else

             echo -e " $i安装出错"

             exit 1

        fi

       else

         echo -e " $i 已经安装"

      fi

    done

    }

    ####### yum 卸载软件 #######

    yumremove(){

            echo -e " 开始卸载lamp软件包..."

            for i in $SOFTS

            do

              rpm -q $i &> /dev/null

              if (( $?==0 ))

               then

               yum remove $i -y  &> /dev/null

                if (($?==0))

                  then

                     echo -e " $i卸载成功"

                else

                     echo -e " $i卸载出错"

                     exit 1

                fi

      else

        echo -e " $i 软件包未安装"

              fi

            done

    }

    ####### 服务启动 ########

    Serstart(){

     service $1 restart &> /dev/null

     if (($?==0))

             then

              echo -e " $1 已经重启成功"

             else

              echo -e " $1 服务有问题" 

              exit 1

             fi

    }

    ####### mysql密码测试 ######

    mysqlpass(){

            echo -e " 开始设置mysql密码"

    Serstart mysqld

    mysql -u root -e "use test;"

    if (( $?==0 ))

    then

       mysqladmin -uroot password '123' && echo -e " mysql 密码修改成功"

    else

       echo -e " mysql无法修改密码"

       exit 1

    fi

    }

    ####### 检测dns环境 #######

    chkdns(){

    echo -e " 开始配置DNS服务"

    cat << EOF > /etc/named.conf

    options {

            directory       "/var/named";

    };

    zone "$NAME"{

       type master;

       file "$NAME.zone";

    };

    EOF

    cat << EOF > /var/named/$NAME.zone

    $TTL 1D

    @       IN SOA  dns.$NAME.  root (

                                            0       ; serial

                                            1D      ; refresh

                                            1H      ; retry

                                            1W      ; expire

                                            3H )    ; minimum

            IN      NS      dns.$NAME.

    dns     IN      A       $NET

    bbs     IN      A       $NET

    EOF

    chown root:named /var/named/$NAME.zone

    echo "nameserver $NET"> /etc/resolv.conf

    }

    ####### 检测虚拟主机 ########

    chkvhost(){

     echo -e " 开始配置虚拟主机"

     cat << EOF > /etc/httpd/conf.d/vhost.conf

    NameVirtualHost $NET:80

    <VirtualHost $NET:80>

     DocumentRoot $ROOT

     ServerName bbs.$NAME

    </VirtualHost>

    EOF

     echo -e " 虚拟主机配置完成"

     Serstart named

     Serstart httpd

    }

    ####### 拷贝论坛文件 ########

    cpfile(){

    echo -e " 开始复制论坛文件"

    {

    mkdir -p /tmp/softdir

            rm -rf /tmp/softdir/*

    unzip ./$SOFT -d /tmp/softdir/

    rm -rf $ROOT

    cp -a /tmp/softdir/upload $ROOT

    } &> /dev/null

    if (( $? != 0 ))

      then

      echo -e " 复制文件出错"

      exit 1

    else

    chown -R apache:apache ${ROOT}/{data,config,uc_*}

    echo -e " lamp论坛安装完成请在浏览器中输入http://bbs.$NAME开始安装"

    exit 0

    fi

    }

    ###### 删除遗留文件 #######

    rmfile(){

    echo -e " 正在删除遗留文件...."

    for file in $RMFILES

    do

     rm -rf $file &> /dev/null

    done      

    echo -e " 成功删除遗留文件"

           exit 0

    }

    2.安装主程序:

    #!/bin/bash

    . ./lib.sh

    SOFT="Discuz_X2.5_SC_UTF8.zip"

    SOFTS="httpd mysql mysql-server mysql-devel php php-mysql bind bind-chroot"

    DIR=/media/cdrom

    ROOT=/var/www/bbs

    NET=192.168.190.129

    NAME=cc.com

    RMFILES="$ROOT /etc/named.* /var/named /etc/httpd/conf.d /var/lib/mysql"

    ###### 安装主程序 ########

    pinstall(){

           if [ -d $ROOT ]

    then

      echo -e " 33[31m已经安装,请先卸载33[0m"

      return

    else

      echo -e " 准备安装环境...."

    myyum

    yuminstall

    mysqlpass

    chkdns

    chkvhost

    cpfile

    fi    

    }

    ###### 卸载程序 ######

    uninstall(){

    if [ ! -d $ROOT ]

            then

              echo -e " 33[31m未安装,请先安装33[0m"

      return

            else

              echo -e -n " 33[31m确定要卸载(yes/no)33[0m"

    while true

    do

      read  que

      case "$que" in

              no|NO)

      return

              ;;

      yes|YES)

      break

      ;;

      *)

              echo -e -n " 33[31m请输入(yes/no)33[0m"

      ;;

      esac

            done

      echo -e " 准备卸载...."

      myyum

      yumremove

      rmfile

    fi

      }

       while true

    do

           clear

           menu

         case "$choice" in

           0)

                    break

                          ;;

           1)

                    pinstall

                          ;;

           2)

                    uninstall

                          ;;

          *)

             echo -e " 33[31m没有这个选项33[0m"

                          ;;

         esac

             echo -e -n " Press any key to return"

     read  -n1 any

    done

    clear

    运行测试:

    [root@server2 lamp_sh]# sh lamp.sh     

                    ***自动化安装工具***

    1.         1.      自动安装LAMP论坛
    1.         2.      自动卸载LAMP论坛
    1.         0.      退出菜单

                    你的选择是:1

    准备安装环境....

    yum is ok

    开始安装lamp需要到软件包...

    httpd 已经安装

    mysql 已经安装

    mysql-server 已经安装

    mysql-devel 已经安装

    php 已经安装

    php-mysql 已经安装

    bind 已经安装

    bind-chroot 已经安装

    开始设置mysql密码

    mysqld 已经重启成功

    mysql 密码修改成功

    开始配置DNS服务

    开始配置虚拟主机

    虚拟主机配置完成

    named 已经重启成功

    httpd 已经重启成功

    开始复制论坛文件

    lamp论坛安装完成请在浏览器中输入http://bbs.cc.com开始安装

    将来的你,一定会感谢现在拼命努力的你。
  • 相关阅读:
    实时视频应用示例:监控与音乐教学
    im ui框架调研,对比
    WampServer 常见问题
    Android Studio xcode单步调试 WebRTC Android & iOS
    WebRTC 源码分析(五):安卓 P2P 连接过程和 DataChannel 使用
    归并排序的分析与Java实现
    Redis的数据类型
    使用Maven进行多模块拆分
    内容平台消息队列异步静态化实现
    ActiveMQ的应用实例
  • 原文地址:https://www.cnblogs.com/51runsky/p/3306109.html
Copyright © 2011-2022 走看看