你的位置:首页 > 操作系统

[操作系统]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\nginx-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 1function 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 1function 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 "processor" | wc -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 1function 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 1function 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