Shell programmation script de gestion en un clic Nginx: installation, mise à niveau, suppression

#! / bin / bash

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

# Auteur: lijingtao

# Date de création: 2020-02-22

# La description: 

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

# Déterminez si la machine est installée avec nginx et ses informations de version

si [-f / usr / local / nginx / sbin / nginx]; alors

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

NGX_VERSION = $ var

autre

NGX_VERSION = "Version nginx introuvable, veuillez installer d'abord"

être

si [[$ # == 0]]; alors

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

    sortie

elif [[! "$ 1" = ~ ^ [12] \. [1-9] [0-9] \. [0-9] $]], puis

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

    echo "veuillez vérifier votre saisie"

    sortie

être

#Install nginx

fonction 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  

#Ajouter un fichier de configuration d'hôte virtuel

     #Ici, vous devez déterminer où se trouve le fichier de configuration spécifié par ngixn actuel, prendre la valeur et la remplacer par la variable nx

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

}

#Upgrade nginx pour déterminer que nginx est installé avant de pouvoir être exécuté

function 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

    faire

    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 recharger

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

}

# Désinstaller le nginx installé par le code source (un jugement supplémentaire peut être ajouté pour supprimer le nginx installé par yum)

fonction removenginx () {

    rm -rf / usr / local / nginx / 

    echo -e "\ e [32m Le répertoire d'installation de nginx est supprimé \ e [0m"

    rm -rf / usr / src / nginx *

    echo -e "\ e [32m nginx - $ {1} .tar.gz est supprimé \ e [0m"

}

#nginxmenu

menu de fonction () {

    sélectionnez x dans addhost delhost \ do love break

    faire

    echo "votre choix est $ x, maintenant entrez"

    $ x

    terminé

}

fonction delhost () {

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

    echo "$ {var}"

    lire -p "quel virulhost vous voulez supprimer" hostdel

   pour i dans $ {var}

   faire

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

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

    terminé

}

#Modifiez le contenu du fichier de configuration principal et ajoutez le chemin d'inclusion.

fonction addhost () {

    décalage 1

    read -p "vous saisissez virul servername:" servername

    lire -p "saisir votre port:" port

    echo "serveur {

    écouter $ {port};                                                                                                                               

    nom_serveur $ {nom_serveur};

    emplacement / {

      root html;

      index index.html index.htm;

             }

             }

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

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

}

#Main Menu

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

sélectionnez i dans installnginx updatenginx removenginx addandrmhost exit

    faire

# if [$ i == "exit"]; then

# sortie

# fi 

    cas $ i in

        installnginx)

        installnginx $ 1

        ;;

        updatenginx)

        si [-f / usr / local / nginx / sbin / nginx]; alors

        $ i $ 1

        autre

        echo -e "\ e [33m nginx n'a pas été installé sur votre système, veuillez d'abord installer nginx \ e [0m"

        être

        ;;

        removenginx)

        $ i $ 1

        ;;

        addhost)

        menu

        ;;

        sortie)

        sortie

    esac

 

terminé

 

A publié 14 articles originaux · Likes0 · Visites 414

Je suppose que tu aimes

Origine blog.csdn.net/falnet/article/details/104467457
conseillé
Classement