シェルプログラミングNginxワンクリック管理スクリプト:インストール、アップグレード、削除

#!/ bin / bash

#================================================= ===

#作者:lijingtao

#作成日:2020-02-22

#説明: 

#================================================= ===

#マシンがnginxとそのバージョン情報でインストールされているかどうかを確認します

if [-f / usr / local / nginx / sbin / nginx];その後

var = `/ usr / local / nginx / sbin / nginx -v`

NGX_VERSION = $ var

そうしないと

NGX_VERSION = "nginxバージョンが見つかりません。最初にインストールしてください"

されます

if [[$#== 0]];その後

    echo -e "\ e [33m usege {$ 0 1.16.0 / 1.12.2 $ NGX_VERSION} \ e [0m"

    出口

elif [[!"$ 1" =〜^ [12] \。[1-9] [0-9] \。[0-9] $]];その後

    echo "usege {$ 0 1.16.0 / 1.12.2 $ NGX_VERSION}"

    エコー "入力を確認してください"

    出口

されます

#nginxをインストールする

関数installnginx(){

    useradd -s / sbin / nologin -M nginx

    cd / usr / src

    wget -c http://nginx.org/download/nginx-${1}.tar.gz 

    tar zxf nginx-$ {1} .tar.gz -C / usr / src

    cd / usr / src / nginx-$ {1}

    ./configure --prefix = / usr / local / nginx --user = nginx --group = nginx --with-http_ssl_module --with-http_stub_status_module

    make && make install

    / usr / local / nginx / sbin / nginx     

    / usr / local / nginx / sbin / nginx -v  

#仮想ホスト構成ファイルを追加

     #ここでは、現在のngixnで指定された構成ファイルの場所を特定し、その値を取得して変数nxで置き換える必要があります

    sed -i '/ http {/ a \ include /usr/local/nginx/conf/\*\.conf' /usr/local/nginx/conf/nginx.conf 

}

#nginxをアップグレードして、実行する前にnginxがインストールされていることを確認します

関数updatenginx(){

    cd / usr / src

    wget -c http://nginx.org/download/nginx-${1}.tar.gz -P / usr / src

    tar zxf /usr/src/nginx-${1}.tar.gz -C / usr / src

    cd / usr / src / nginx-$ {1}

    ./configure --prefix = / usr / local / nginx --user = nginx --group = nginx --with-http_ssl_module --with-http_stub_status_module

    作る

    mv /usr/local/nginx/sbin/nginx{,.bak}

    cp objs / nginx / usr / local / nginx / sbin /

    kill -USR2 `cat / usr / local / nginx / logs / nginx.pid`

    kill -QUIT `cat / usr / local / nginx / logs / nginx.pid.oldbin`

    / usr / local / nginx / sbin / nginx -s reload

    / usr / local / nginx / sbin / nginx -V

}

#ソースコードによってインストールされたnginxをアンインストールします(yumによってインストールされたnginxを削除するために追加の判断を追加できます)

関数removenginx(){

    rm -rf / usr / local / nginx / 

    echo -e "\ e [32m nginx install dir is delate \ e [0m"

    rm -rf / usr / src / nginx *

    echo -e "\ e [32m nginx-$ {1} .tar.gz is delate \ e [0m"

}

#nginxmenu

function menu(){

    addhost delhostでxを選択します。

    行う

    echo "あなたの選択は$ xです、今inpupt enter"

    $ x

    終わった

}

関数delhost(){

    var = `cat / usr / local / nginx / conf / servername.txt`

    エコー "$ {var}"

    read -p "delate virulhost delate" hostdel

   $ {var}のi

   行う

    rm -rf /usr/local/nginx/conf/${i}.conf

    sed -i "/ $ {i} / d" /usr/local/nginx/conf/servername.txt

    終わった

}

#メイン構成ファイルの内容を変更し、インクルードパスを追加します。

関数addhost(){

    シフト1

    read -p "input you virul servername:" servername

    read -p "input you port:"ポート

    echo "サーバー{

    $ {port}をリッスンします。                                                                                                                               

    server_name $ {servername};

    場所/ {

      ルートhtml;

      index index.html index.htm;

             }

             }

     "> /usr/local/nginx/conf/${servername}.conf

     echo "$ {servername}" >> / usr / local / nginx / conf / servername.txt

}

#メインメニュー

PS3 = "usage {$ 0 1.16.0 / 1.12.2 $ NGX_VERSION}"

installnginx updatenginx removenginx addandrmhost exitでiを選択します

    行う

#if [$ i == "exit"];その後

# 出口

#fi 

    $ iケース

        installnginx)

        installnginx $ 1

        ;;

        updatenginx)

        if [-f / usr / local / nginx / sbin / nginx];その後

        $ i $ 1

        そうしないと

        echo -e "\ e [33m nginxはシステムにインストールされていません。最初にnginxをインストールしてください\ e [0m"

        されます

        ;;

        removenginx)

        $ i $ 1

        ;;

        addhost)

        メニュー

        ;;

        出口)

        出口

    esac

 

終わった

 

オリジナルの記事を14件公開 Likes0 訪問数414

おすすめ

転載: blog.csdn.net/falnet/article/details/104467457