基础安装脚本

#!/bin/bash

#【一级菜单】

menu_main(){

cat <<EOF

+-----------------------------------------------+

|                       |  

|       1、配置WEB服务           |

|       2、配置MYSQL服务     |

|       3、配置Network服务       |

|       4、更改密码          |

|       5、配置YUM         |

|       6、关闭防火墙、Selinux     |  

|       7、清空当前内存缓存      |

|       8、退出                |

|                       |

+-----------------------------------------------+

EOF

}


 

#【二级菜单】

menu_1(){

cat <<EOF

+-----------------------------------------------+

|                       |

|       0、配置WEB服务           |

|       1、启动WEB服务           |

|       2、停止WEB服务           |

|       3、重启WEB服务           |

|       4、返回上一级         |

|                       |

+-----------------------------------------------|      

EOF

}


 

menu_2(){

cat <<EOF

+-----------------------------------------------+

|                       |

|       0、配置MYSQL服务     |

|       1、启动MYSQL服务     |

|       2、停止MYSQL服务     |

|       3、重启MYSQL服务     |

|       4、返回上一级         |

|                       |

+-----------------------------------------------|      

EOF

}

#menu_main

#menu_1

#menu_2

tishi(){

    systemctl status httpd >>/dev/null

    if [ $? -eq 0 ];then

        echo "httpd服务已启动"

    else

        echo "httpd服务没启动"

    fi

    systemctl status mysql >>/dev/null

   

    if [ $? -eq 0 ];then

        echo "mysql服务已启动"

    else

        echo "mysql服务没启动"

    fi

}

tishi

echo "当前时间为:"`date`

echo "当前主机名为:"`hostname`

echo "当前用户为:$USER"

echo "当前IP地址为:`ip a |awk 'NR==9{print $2}'`"

echo "磁盘使用率为:`df -Th |awk 'NR==2{print $6}'`"

echo "CPU `uptime |awk -F "," '{print $3,$4,$5}'`"

#【关闭防火墙、selinux】

func_mysql(){

    systemctl stop firewalld

    sed -r -i s/SELINUX=enable/SELINUX=disabled/  /etc/selinux/config

    setenforce 0 &>>/dev/null

    systemctl disable firewalld

    echo "防火墙都已经关了,搞起搞起。"

}


 

#【阿里云yum源】

ali_yum(){

    curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo && yum clean all && yum makecache && yum -y reinstall epel-release && yum makecache

}


 

#【配置web服务】

web_server(){

    yum -y install httpd >>/dev/null

    if [ $? -eq 0  ]

    then

        clear

        echo "httpd服务下载完成"

    else

        clear

        echo "yum源有错误"

    fi

}


 

#【清理MySQL安装环境】

mysql_server_clear(){

    /etc/init.d/mysqld stop &>/dev/null

    systemctl stop mysqld &>/dev/null

    ps aux |grep " /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/usr/local/mysql/data" | awk '{print $2}' |kill -9 &>/dev/null

    yum remove mysqld &>/dev/null

    yum erase mariadb mariadb-server mariadb-libs mariadb-devel -y &>/dev/null

    userdel -r mysql &>/dev/null

    rm -rf /etc/my* &>/dev/null

    rm -rf /var/lib/mysql &>/dev/null

    rm -rf /usr/local/mysql &>/dev/null

    rpm -e `rpm -qa |grep mysql` &>/dev/null

    rm -rf /var/log/mysql.log &>/dev/null

    rm -rf /var/log/mysqld.log &>/dev/null

    rm -rf /usr/local/mysql &>/dev/null

    rm -rf /usr/local/mysql-5.7.27/CMakeCache.txt &>/dev/null

    rm -rf /usr/bin/mysql

    rm -rf /usr/bin/mysqld

}

#【MySQL编译安装包获取】

wget_mysql(){

while :

do

    if [ -f "/root/mysql-boost-5.7.27.tar.gz" ]

    then

        break

    else

        wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.27.tar.gz

        if [ $? -eq 0 ]

        then

            break

        fi

    fi

done

}

#【MySQL编译安装】

mysql_make_install(){

    rm -rf /usr/local/mysql-5.7.27/CMakeCache.txt

    cd /usr/local/mysql-5.7.27/

    cmake . \

    -DWITH_BOOST=boost/boost_1_59_0/ \

    -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \

    -DSYSCONFDIR=/etc \

    -DMYSQL_DATADIR=/usr/local/mysql/data \

    -DINSTALL_MANDIR=/usr/share/man \

    -DMYSQL_TCP_PORT=3306 \

    -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \

    -DDEFAULT_CHARSET=utf8 \

    -DEXTRA_CHARSETS=all \

    -DDEFAULT_COLLATION=utf8_general_ci \

    -DWITH_READLINE=1 \

    -DWITH_SSL=system \

    -DWITH_EMBEDDED_SERVER=1 \

    -DENABLED_LOCAL_INFILE=1 \

    -DWITH_INNOBASE_STORAGE_ENGINE=1

    if [ $? -eq 0 ]

    then

        cd /usr/local/mysql-5.7.27/ && make -j 4  && make install

    else

        echo "mysql配置失败"

        exit

    fi

}

#【配置network服务】

net_server(){

    clear

    read -p "请输入你要指定的网关[返回输入0]: "  gw

    if [ "$gw" == "0" ]

    then

        clear

        continue

    fi

    read -p "请输入你要制定的IP :  "  my_ip

    cat > /etc/sysconfig/network-scripts/ifcfg-ens33  <<-EOF

    TYPE="Ethernet"

    BOOTPROTO="none"

    DEVICE="ens33"

    ONBOOT="yes"

    IPADDR=$my_ip

    PREFIX=24

    GATEWAY=$gw

    DNS1=114.114.114.114

    EOF

    systemctl stop NetworkManager &>/dev/null

    systemctl restart network &>/dev/null

    if [ $? -eq 0 ]

    then

        clear

        echo -e "IP配置完成!当前IP为:$my_ip"

    fi

}

#【更改密码】

passwd_server(){

    echo "1" | passwd --stdin $USER

}

clear_cache(){

    sync

    echo 3 > /proc/sys/vm/drop_caches

}



 

while :

do

    menu_main

    read -p "请输入你的选择:【1/2/3/4/5/6/7/8】" num_main

    clear

    if [ $num_main -eq 1 ];then

        while :

        do

            menu_1

            read -p "请输入你的选择:【0/1/2/3/4/】" num_1

            case $num_1 in

                0)

                web_server

                ;;

                1)

                systemctl start httpd

                if [ $? -eq 0 ];then

                    clear

                    echo "启动成功"

                else

                    clear

                    echo "启动失败"

                fi

                ;;

                2)

                systemctl stop httpd

                if [ $? -eq 0 ];then

                    clear

                    echo "服务关闭成功"

                fi

                ;;

                3)

                systemctl restart httpd

                if [ $? -eq 0 ];then

                    clear

                    echo "服务重启成功"

                else

                    clear

                    echo "服务重启失败"

                fi

                ;;

                4)

                clear

                break

                ;;

                *)

                clear

                echo "输入错误,请输入正确的选项"

                ;;

                esac

        done

    elif [ $num_main -eq 2 ];then

        while :

        do

            menu_2

            read -p "请输入你的选择:【0/1/2/3/4】" num_2

            case $num_2 in

                0)

                #【清理编译环境】

                mysql_server_clear

                #【下载MySQL安装包】

                wget_mysql

               

                yum -y install ncurses nurses-devel openssl-devel bison gcc gcc-c++ make cmake || exit

               

                mkdir -p /usr/local/mysql/{data,log}

                if [ ! -d /usr/local/mysql-5.7.27 ];then

                tar xzf /root/mysql-boost-5.7.27.tar.gz -C /usr/local/

                fi

                cd /usr/local/mysql-5.7.27/

                userdel -r mysql

                useradd mysql -M -s /sbin/nologin

                #【编译安装】

                mysql_make_install

                #【初始化】

                chown -R mysql.mysql /usr/local/mysql

                /usr/local/mysql/bin/mysql --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data  &>/root/mysql_init.txt

                mysql_init_pw=`grep "A temporary password is generated"  /root/mysql_init.txt | awk '{print $NF}'`

                #【修改初始化密码为1】

                cat>/etc/my.cnf<<-EOF

                [client]

                                port = 3306

                                socket = /tmp/mysql.sock

                                default-character-set = utf8

                                [mysqld]

                                port = 3306

                                user = mysql

                                basedir = /usr/local/mysql

                                datadir = /usr/local/mysql/data

                                socket = /tmp/mysql.sock

                                character_set_server = utf8

                EOF

               

                #【添加环境变量,简化启动与使用流程】

                                echo "PATH=$PATH:$HOME/bin:/usr/local/mysql/bin" >>/etc/profile && source /etc/profile

                                cp /usr/local/mysql/support-files/mysql.server  /etc/init.d/mysqld

                                chkconfig --add mysqld

                                sleep 2

                                while :

                                do

                                        /etc/init.d/mysqld start

                                        if [ $? -eq 0 ]

                                        then

                                                echo "【启动MySQL成功,即将修改初始密码为:你想要的密码 】"

                                                break

                                        else

                                                pkill -9 mysqld

                                                sleep 2

                                        fi

                 done

                                /usr/local/mysql/bin/mysqladmin -u root -p"$mysql_init_pw"  password '你想要的密码'

                                chkconfig mysqld on

                                ln -s /usr/local/mysql/bin/mysql  /usr/bin/mysql

                                sleep 3

                                clear

                                 echo "启动:/etc/init.d/mysqld start"

                                 echo "关闭:/etc/init.d/mysqld stop"

                                 echo "登陆:mysql -u账号 -p密码"

                        ;;

            1)

            /etc/init.d/mysqld start

            ;;

            2)

            /etc/init.d/mysqld stop

            ;;

            3)

            /etc/init.d/mysqld restart

            ;;

            4)

            clear

            break

            ;;

            *)

            clear

            echo "输入错误,请输入正确的选项:"

            ;;

            esac

        done

    elif [ $num_main -eq 3 ];then

        net_server          

    elif [ $num_main -eq 4 ];then

        passwd_server

    elif [ $num_main -eq 5 ];then

        ali_yum

    elif [ $num_main -eq 6 ];then

        func_mysql

    elif [ $num_main -eq 7 ];then

        clear_cache

    elif [ $num_main -eq 8 ];then

        exit

    else

        echo "输入错误,请重新输入选项"

    fi

done

               






























 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值