zoukankan      html  css  js  c++  java
  • Shell编写Nginx自动部署脚本

    1、功能描述

      1. 安装支持包,从软件源下载自定义的NGINX包,创建NGINX用户和用户组。

      2. 安装并初始化NGINX配置。

      3. 运行NGINX并检测运行状态。

    2、实现

      源码如下:

    #!/bin/bash
    # eastmoney public tools
    # version: v1.0.1
    # create by XuHoo, 2016-9-28
    #
    
    function environment() {
        if [[ "$USER" != "root" ]]; then
            echo "Current user is not root"
            return 1
        fi
        yum -y install wget curl pcre pcre-devel zlib zlib-devel gcc gcc-c++ &> /tmp/nginx_install.log
        # getUrl: Input download source address
        # getUrl='http://172.16.1.1
    ginx-1.8.1.tar.gz'
        wget -P /tmp/ $getUrl/nginx.tar.gz
        grep "nginx" /etc/passwd > /dev/null
        if [[ $? -ne 0 ]]; then  # check user and group
            groupadd nginx
            useradd -M -g nginx -s /sbin/nologin nginx
        fi
        cd /tmp; tar -zxf nginx.tar.gz; cd nginx
        return 0
    }; environment; [ $? -ne 0 ] && exit 1
    

    function install() {
    # Compile before installation configuration
    ./configure --prefix=/usr/local/nginx
    --user=nginx --group=nginx
    --with-http_stub_status_module
    &> /tmp/nginx_install.log
    if [[ $? -ne 0 ]]; then
    return 1
    else
    # make && make install
    make &> /tmp/nginx_install.log
    make install
    &> /tmp/nginx_install.log
    if [[ $? -ne 0 ]]; then
    return 1
    fi
    return 0
    fi
    }; install; [ $?
    -ne 0 ] && exit 1

    function optimize() {
    ln -s /usr/local/nginx/sbin/* /usr/local/sbin/ > /dev/null
    cp
    -f /tmp/nginx_control.sh /etc/init.d/nginx
    cp
    -f /tmp/nginx.conf /usr/local/nginx/conf/nginx.conf
    # The number of CPU cores current server,
    # Amend the "worker_processes" field to the value of the processor
    processor=cat /proc/cpuinfo | grep <span style="color: #800000;">"</span><span style="color: #800000;">processor</span><span style="color: #800000;">"</span> | wc -<span style="color: #000000;">l
    sed -i "s/^w.*;$/worker_processes ${processor};/g" /usr/local/nginx/conf/nginx.conf
    chmod
    +x /etc/init.d/nginx
    chkconfig
    --add nginx
    retval
    =chkconfig --level 3 nginx on # Configure nginx open start service
    return $retval
    }; optimize; [ $?
    -ne 0 ] && exit 1

    function run() {
    # Test nginx.conf file syntax is correct
    /etc/init.d/nginx test &> /tmp/nginx_run.log
    if [[ $? -ne 0 ]]; then
    retval
    =$?
    else # Start nginx server
    /etc/init.d/nginx start &> /tmp/nginx_run.log
    if [[ $? -ne 0 ]]; then
    retval
    =$?
    fi
    fi
    return 0
    }; run; [ $?
    -ne 0 ] && exit 1

    function check() {
    # Modified index.html page content
    content=$"deployment on $(date "+%Y-%m-%d %H:%M:%S")"
    echo $content
    > /usr/local/nginx/html/index.html
    # View the index.html, and the output of the modified index.html page
    /etc/init.d/nginx status
    echo
    -n "Index.html: "; curl http://localhost
    }; check

  • 相关阅读:
    二分图的最大匹配-hdu-3729-I'm Telling the Truth
    hdu3308LCIS(线段树,点更新,段查寻,查寻时一定要注意跨越时如何计算)
    小智慧58
    【开源项目】Android 手写记事 App(半成品)
    持续集成之戏说Check-in Dance
    XSS与字符编码的那些事儿
    十大渗透测试演练系统
    Google DNS劫持背后的技术分析
    黑客是怎样绕过WAF之三重防护绕过讲解
    Seay工具分享
  • 原文地址:https://www.cnblogs.com/jpfss/p/9717074.html
Copyright © 2011-2022 走看看