zoukankan      html  css  js  c++  java
  • Shell编程之if语法练习(LNMP)全过程 Theletter

    大家好,我是延凯,本人原来在CSDN写作已经快一年了 都是相关Linux运维这方面的技术知识,现在搬到博客园也是我一直想的,本博客主要写Python,docker,shell等偏向开发云计算等知识点,谢谢各位,声明:(原先的CSDN也会不定时更新Linux运维等方面的知识!)

    #!/bin/bash  
    # DATE:Wed Jan 17 1# ywyankerp@163.com  
    #this is a yankerp  
      
    # The Nginx service is being installed  
    ROOT_ID=0  
    ML=/usr/local/src  
    NGINX_ML=/usr/local/src/nginx-1.12.2  
    PML=/usr/local/src/php-5.6.27  
    QD=`netstat -anpt | grep 80 | awk '{print $7}' | cut -d "/" -f2 | cut -d ":" -f1`  
    ADDR=`ip a | grep eno16777728$ | awk '{print $2}' | cut -d "/" -f1`  
    MMM=`netstat -anput | grep mysqld | awk '{print $4}' | cut -d ":" -f4`  
    MAR=`rpm -qa | grep mariadb`  
    cd $ML && {  
    wget http://mirrors.aliyun.com/repo/Centos-7.repo &> /dev/null  
    mv Centos-7.repo /etc/yum.repos.d/Centos-Base.repo  
    yum clean all &> /dev/null  
    yum makecache &> /dev/null  
    }  
      
    if [ $? -eq 0 ]  
        then  
            echo "Yum源更新完毕,开始安装!!!"  
        else  
            echo "Yum源error"  
            exit 1  
    fi  
    echo "Yum源配置成功"  
      
    if [ "$UID" -eq "$ROOT_ID" ]  
            then  
                   echo "root用户运行中" && systemctl stop firewalld && yum install -y gcc gcc-c++  pcre-devel zlib-devel openssl-devel &> /dev/null  
            else  
                   echo "请使用Root用户运行"  
                   exit 1  
    fi  
    echo "依赖包安装完成!"  
    cd $ML || {  
            echo "进入目录失败!!!"  
            exit 1  
    }  
      
    wget http://nginx.org/download/nginx-1.12.2.tar.gz &> /dev/null && {  
    tar zxf nginx-1.12.2.tar.gz && groupadd www && useradd -g www www -s /sbin/nologin  
    }  
    echo "Nginx包下载成功"  
    cd $NGINX_ML && {  
        ./configure --prefix=/usr/local/nginx --with-http_dav_module --with-http_stub_status_module --with-http_addition_module --with-http_sub_module --with-http_flv_module --with-http_mp4_module --with-http_ssl_module --with-http_gzip_static_module --user=www --group=www &> /dev/null && make &> /dev/null && make install &> /dev/null   
    }  
      
    if [ $? -eq "0" ]  
            then  
                   ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin ;nginx && echo "Nginx启动成功,请访问http://$ADDR:80"  
            else  
                   echo "Nginx启动失败!!!"  
                   exit 1  
    fi  
      
      
    #Start installing MySQL5.7echo "开始下载MySQL二进制安装包,请稍等..."  
    if [ -z "$MAR" ]  
                    then  
                            echo "开始安装MySQL"  
    fi  
    if [ -n "$MAR" ]  
                    then  
                            rpm -e mariadb-libs --nodeps && echo "卸载mariadb成功!正式安装MySQL"  
    fi  
      
    cd $ML || {  
        echo "进入目录失败!!!"  
        exit 1  
    }  
      
    wget http://mirrors.sohu.com/mysql/MySQL-5.7/mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz &> /dev/null && {  
    tar zxf mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz  && mv mysql-5.7.18-linux-glibc2.5-x86_64 /usr/local/mysql  
    cd /usr/local/mysql/ && mkdir data && mkdir log && echo "export PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile  
    source /etc/profile && groupadd mysql && useradd -r -g mysql -s /bin/false mysql  
    }  
      
    cat << EOF >/etc/my.cnf  
    [client]    
    socket=/usr/local/mysql/mysql.sock    
    [mysqld]    
    basedir=/usr/local/mysql    
    datadir=/usr/local/mysql/data    
    pid-file=/usr/local/mysql/data/mysqld.pid    
    socket=/usr/local/mysql/mysql.sock    
    log_error=/usr/local/mysql/log/mysql.err  
    EOF  
      
    if [ ! -d /etc/my.cnf ]  
                    then  
                            chmod 750 data/ && chown -R mysql . && chgrp -R mysql . && bin/mysqld --initialize --user=mysql && cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld && service mysqld start &> /dev/null  
                    else  
                             echo "错误!!!"  
    fi  
    if [ $? -eq "0" ]  
        then  
            echo "MySQL正式安装完成杀青!"  
        else  
            echo "MySQL安装失败!!!"  
            exit 1  
    fi  
      
    #PHP install sccessy  
    yum -y install libxml2-devel libcurl-devel openssl-devel bzip2-devel &> /dev/null  
    if [ $? -eq 0 ]  
            then  
                    echo "依赖包安装成功!!!"  
            else  
                    echo "依赖包安装失败!!!"  
    fi  
      
    cd $ML || {  
            echo "进入目录失败!!!"  
            exit 1  
    }  
      
    wget ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/libmcrypt/libmcrypt-2.5.7.tar.gz &> /dev/null  && {  
    tar zxf libmcrypt-2.5.7.tar.gz && cd libmcrypt-2.5.7/ && ./configure --prefix=/usr/local/libmcrypt &> /dev/null && make &> /dev/null && make install &> /dev/null  
    }  
      
    if [ $? -eq 0 ]  
            then  
                    echo "Libmcrypt安装成功!"  
            else  
                    echo "Libmcrypt-ERROR!"  
            exit 1  
    fi  
    # PHP install  
    cd $ML || {  
            echo "进入目录失败!!!"  
            exit 1  
    }  
    wget http://cn2.php.net/distributions/php-5.6.27.tar.gz &> /dev/null && {  
    tar zxf php-5.6.27.tar.gz && cd php-5.6.27/ &&  ./configure --prefix=/usr/local/php5.6 --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-openssl --enable-fpm --enable-sockets --enable-sysvshm --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --with-mhash --with-mcrypt=/usr/local/libmcrypt --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2 --enable-maintainer-zts  &> /dev/null  
    }  
    if [ $? -eq 0 ]  
                then  
                     make &> /dev/null  && make install &> /dev/null  &&  echo "PHP编译安装成功,正在配置请稍等...."  
                else  
                     echo "PHP安装失败"  
    fi  
      
    cd $PML || {  
                    echo "进入目录失败!!!"  
                    exit 1  
    }  
    cp php.ini-production /etc/php.ini && {  
    cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm && chmod +x /etc/init.d/php-fpm && chkconfig --add php-fpm && chkconfig php-fpm on  
    }  
      
    if [ $? -eq 0 ]  
                            then  
                                    cp /usr/local/php5.6/etc/php-fpm.conf.default /usr/local/php5.6/etc/php-fpm.conf && echo "复制主配置成功"  
                            else  
                                    echo "PHP权限失败,请重试!"  
    fi  
      
    if [ ! -d /usr/local/php5.6/etc/php-fpm.conf ]  
            then  
                    sed -i 's#;pid = run/php-fpm.pid#pid = run/php-fpm.pid#g' /usr/local/php5.6/etc/php-fpm.conf  
                    sed -i 's/listen = 127.0.0.1:9000/listen = 127.0.0.1:9000/g' /usr/local/php5.6/etc/php-fpm.conf  
                    sed -i 's/pm.max_children = 5/pm.max_children = 300/g' /usr/local/php5.6/etc/php-fpm.conf  
                    sed -i 's/pm.start_servers = 2/pm.start_servers = 20/g' /usr/local/php5.6/etc/php-fpm.conf  
                    sed -i 's/pm.min_spare_servers = 1/pm.min_spare_servers = 20/g' /usr/local/php5.6/etc/php-fpm.conf  
                    sed -i 's/pm.max_spare_servers = 3/pm.max_spare_servers = 100/g' /usr/local/php5.6/etc/php-fpm.conf  
            else  
                    echo "NONONO"  
    fi  
    if [ $? -eq 0 ]  
                            then  
                                    systemctl start php-fpm && echo "PHP启动成功"  
                            else  
                                    echo "启动PHP失败"  
    fi  
      
    #配置nginx解析php  
    if [ ! -d /usr/local/nginx/conf/nginx.conf ]  
            then  
                   sed -i 's/index  index.html index.htm;/index  index.php index.html index.htm;/g' /usr/local/nginx/conf/nginx.conf  
                   sed -i 's/#    root           html;/    root           html;/g' /usr/local/nginx/conf/nginx.conf  
                   sed -i 's/#    fastcgi_pass   127.0.0.1:9000;/    fastcgi_pass   127.0.0.1:9000;/g' /usr/local/nginx/conf/nginx.conf  
                   sed -i 's/#    fastcgi_index  index.php;/    fastcgi_index  index.php;/g' /usr/local/nginx/conf/nginx.conf  
                   sed -i 's*#    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;*    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;*g' /usr/local/nginx/conf/nginx.conf  
                   sed -i 's/#    include        fastcgi_params;/    include        fastcgi.conf;/g' /usr/local/nginx/conf/nginx.conf  
                   sed -i '71d' /usr/local/nginx/conf/nginx.conf && sed -i 'N;70a}' /usr/local/nginx/conf/nginx.conf  
                   sed -i '65d' /usr/local/nginx/conf/nginx.conf && sed -i 'N;64alocation ~ \\.php$ {' /usr/local/nginx/conf/nginx.conf  
            else  
                   echo "解析PHP失败!!!"  
    fi  
      
    touch /usr/local/nginx/html/yankerp.php  
    cat << EOF >/usr/local/nginx/html/yankerp.php  
    <?php  
    phpinfo();  
    ?>  
    EOF  
      
    if [ ! -d /usr/local/nginx/html/yankerp.php ]  
        then  
            nginx -s reload && systemctl restart php-fpm  
        else  
            echo "测试目录文件失败"  
    fi  
    wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo  &> /dev/null && yum install -y sl &> /dev/null  
    sl  
    if [ $? -eq 0 ]  
            then  
                    echo "LNMP安装成功,请您访问http://$ADDR/yankerp.php"  
            else  
                    echo "安装失败"  
    fi  
      
    if [ $? -eq 0 ]  
        then  
            echo "LNMP安装成功,请您访问http://$ADDR/yankerp.php"  
        else  
            echo "安装失败"  
    fi  
    ###################################################################################################This is a yankerp~ 

     

    以上使用的过程都是一些if的判断,这样的练习能够熟练掌握shell的if语句的作用,以及对if语句有一些清晰的了解,希望读者能够自己也去写个shell脚本 尤其是刚接触if语句的朋友么,这样才能够提高自己的shell知识,同时也可以掌握shell之if语句的语法以及作用,如果完全可以看懂以上脚本的朋友么 那么恭喜你,你以及对if语句有一些认识了

        再见!

  • 相关阅读:
    Best Time to Buy and Sell Stock III
    Valid Palindrome
    Longest Substring Without Repeating Characters
    Copy List with Random Pointer
    Add Two Numbers
    Recover Binary Search Tree
    Anagrams
    ZigZag Conversion
    Merge k Sorted Lists
    Distinct Subsequences
  • 原文地址:https://www.cnblogs.com/YankaiJY/p/8831115.html
Copyright © 2011-2022 走看看