zoukankan      html  css  js  c++  java
  • shell服务管理->

    nginx.php等服务管理练习脚本

    ->nginx的启动状态

    root@jumpserver-70 day02]# cat nginx_web.sh 
    #!/bin/bash
    source /etc/init.d/functions
    
    nginx_status() {
        if [ $? -eq 0 ];then
            action "nginx is $1 OK!" /bin/true
        else
            action "nginx is $1 failed!" /bin/false
        fi
    }
    
    case $1 in 
        start)
            nginx &>/dev/null
            nginx_status $1
            ;;
        stop)
            nginx -s stop &>/dev/null
            nginx_status $1
            ;;
        reload)
            nginx -s reload &>/dev/null
            nginx_status $1
            ;;
        *)
            echo "USAGE:$0{start|stop|reload}"
    esac

    ->安装nginx->查看状态

    echo "===============================System Repo============================="
    Repos=$(yum repolist |grep nginx|wc -l)
    if [ $Repos -eq 0 ];then
    
        echo "没有发现Nginx的yum仓库...尝试中"
    
        cat >/etc/yum.repos.d/nginx.repo <<-EOF                         #使用cat方法导入
        [nginx]
        name=nginx repo
        baseurl=http://nginx.org/packages/centos/7/x86_64/
        gpgcheck=0
        enabled=1
        EOF
    
        yum makecache &>/dev/null                                      #清空缓存
    
        Repos2=$(yum repolist |grep nginx|wc -l)            #再次yum尝试安装
    
        if [ $Repos2 -eq 1 ];then
            echo "yum仓库已经安装完成...."
        else
            echo "请检查你的网络环境...."
            exit 1
        fi
    else
    
        echo "已存在Nginx的Repos仓库文件..."
    
    fi
    
    echo "===============================System Nginx Install======================="
    
    Rpm_Nginx=$(rpm -qa nginx | wc -l)
    
    if [ $Rpm_Nginx -gt 0 ];then
        echo "Nginx 已经安装....."
    else
        echo "尝试安装Nginx...."
        yum install nginx -y &>/dev/null    
    fi
    
    echo "=======================System Nginx Status ======================"
    
    Nginx_Status=$(systemctl status nginx|grep running|wc -l)
    if [ $Nginx_Status -eq 1 ];then
    
        echo "Nginx已经启动"
    
    else
        echo "Nginx尝试启动"
    
        pkill httpd &>/dev/null        
        pkill nginx &>/dev/null
    
        systemctl start nginx &>/dev/null
    
        if [ $? -eq 0 ];then
            Nginx_Status2=$(systemctl status nginx|grep Active|awk '{print $2 $3}')
            echo "nginx启动完成, 当前的状态是: $Nginx_Status2"
        else
            echo "启动失败, 请手动排查......"
        fi
    fi

    ->nginx状态管理

    [root@jumpserver-70 scripts]# cat nginx_status.sh 
    #!/bin/bash
    
    echo "-----------------------"
    echo "1:开启"
    echo "2:停止"
    echo "3:重载"
    echo "4:重启"
    echo "5:状态"
    echo "-----------------------"
    
    
    read -p "请输入您要执行的命令:" command
    
    case $command in 
        1)
        status_start=$(systemctl status nginx | egrep "running" |wc -l)
        if [ $status_start -eq 1 ];then
            
            echo "nginx已经启动,不需要执行启动操作"
        else
            systemctl start nginx &>/dev/null
            echo "nginx已经启动"
        fi    
            ;;
        2)
            systemctl stop nginx &>/dev/null
            echo "nginx已经停止"
            ;;
        3)
        status_start=$(systemctl status nginx | egrep "running" |wc -l)
            if [ $status_start -eq 1 ];then
            systemctl reload nginx &>/dev/null
            echo "nginx已经重载"
        fi
            ;;
        4)    
            systemctl restart nginx &>/dev/null
            echo "nginx已经重启"
            ;;
        5)
            systemctl status nginx 
            ;;
        *)
            echo "请您选择正确的命令"
            exit 1
    esac    

    ->nginx状态监控脚本(zabbix)

    [root@web03 day01]# cat nginx_status.sh 
    #!/bin/bash
    ############################################################
    # $Name:         nginx_status.sh
    # $Version:      v1.0
    # $Function:     Nginx Status
    # $Author:       
    # $organization: 
    # $Create Date:  2018-9-19
    # $Description:  Monitor Nginx Service Status
    ############################################################
    
    NGINX_COMMAND=$1
    NGINX_PORT=80
    
    nginx_active(){
        /usr/bin/curl -s "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" |awk '/Active/ {print $NF}'
    }
    
    nginx_reading(){
        /usr/bin/curl -s "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" |awk '/Reading/ {print $2}'
    }
    
    nginx_writing(){
        /usr/bin/curl -s "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" |awk '/Writing/ {print $4}'
           }
    
    nginx_waiting(){
        /usr/bin/curl -s "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" |awk '/Waiting/ {print $6}'
           }
    
    nginx_accepts(){
        /usr/bin/curl -s "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" |awk 'NR==3 {print $1}'
           }
    
    nginx_handled(){
        /usr/bin/curl -s "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" |awk 'NR==3 {print $2}'
           }
    
    nginx_requests(){
        /usr/bin/curl -s "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" |awk 'NR==3 {print $3}'
           }
    
    
      case $NGINX_COMMAND in
        active)
            nginx_active;
            ;;
        reading)
            nginx_reading;
            ;;
        writing)
            nginx_writing;
            ;;
        waiting)
            nginx_waiting;
            ;;
        accepts)
            nginx_accepts;
            ;;
        handled)
            nginx_handled;
            ;;
        requests)
            nginx_requests;
            ;;
              *)
            echo $"USAGE:$0 {active|reading|writing|waiting|accepts|handled|requests}"
        esac
    
    ->简单参考版 [root@web03 scripts]# cat nginx_status.sh #!/bin/bash port=80 while true do if [ $# -eq 1 ];then case $1 in active) curl -s 127.0.0.1${port}/status | awk '/Active/{print $NF}' break ;; accepts) curl -s 127.0.0.1${port}/status | awk 'NR==3{print $1}' break ;; handled) curl -s 127.0.0.1${port}/status | awk 'NR==3{print $2}' break ;; request) curl -s 127.0.0.1${port}/status | awk 'NR==3{print $3}' break ;; *) echo "USAGE $0 {active|accepts|requests|handled}" exit esac else echo "参数只能为1个,请参考{active|accepts|requests|handled}" break fi done

    ->根据系统版本安装yum源

    [root@jumpserver-70 scripts]# cat repo.sh 
    #!/bin/bash
    
    os_name=$(cat /etc/redhat-release )
    os_version=$(cat /etc/redhat-release |awk -F " " '{print $4}'| awk -F "." '{print $1}')
    
    if [ $os_version -eq 7 ];then
    
        echo "这是$os_name的系统,请安装centos7的yum源"
        wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo &>/dev/null
        echo "$os_name:yum源安装完成"
    
    elif [ $os_version -eq 6 ];then
    
        echo "这是$os_name系统,请安装centos6的yum源"
        wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo &>/dev/null
        echo "$os_name:yum源安装完成"
    
    elif [ $os_version -eq 5 ];then 
        
        echo "这是$os_name系统,请安装centos6的yum源"
        wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-5.repo  &>/dev/null
        echo "$os_name:yum源安装完成"
    
    else
        echo "请检查系统的版本"
    
    fi

    ->选择php版本安装

    [root@jumpserver-70 scripts]# cat php.sh 
    #!/bin/bash
    
    echo '1=(php-5.0)'
    echo '2=(php-6.0)'
    echo '3=(php-7.0)'
    
    read -p "请输入要安装的版本:" num
    
    if [ $num -eq 1 ];then
    
        echo "正在安装php5.0"
    
    elif [ $num -eq 2 ];then
    
        echo "正在安装php6.0"
    
    elif [ $num -eq 3 ];then 
        
        echo "正在安装7.0"
    else
        echo "请选择安装版本"
    fi
  • 相关阅读:
    elasticsearch
    超人学院课课程体系
    51cto大数据培训路线
    关于举办大数据处理技术培训的通知
    “大数据分析高级工程师”培训
    成都大数据Hadoop与Spark技术培训班
    大数据时代新闻采编人员职业能力培训
    EXCEL常用函数
    大数据实时处理-基于Spark的大数据实时处理及应用技术培训
    Properties vs. Attributes
  • 原文地址:https://www.cnblogs.com/tim1blog/p/9698622.html
Copyright © 2011-2022 走看看