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 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 "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 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

SHELL编写NGINX自动部署脚本的更多相关文章

  1. nginx自动部署脚本

    需要下载脚本中需要的jar包nginx.pcre和zlib,自己也上传了一个自己部署的包 https://download.csdn.net/download/qq_17842663/10822976 ...

  2. SHELL编写NGINX服务控制脚本

    使用源码包安装的Nginx没办法使用"service nginx start"或"/etc/init.d/nginx start"进行操作和控制,所以写了以下的 ...

  3. 用shell编写dhcp自动获取脚本

    #!/bin/bash#net=$(ifconfig ens33 | awk -F'[ .]+' '/inet\>/{print $3"."$4"."$5 ...

  4. mysql 自动备份和nginx自动安装脚本

    一.自动备份Mysql脚本: 如下脚本为mysql自动备份脚本,仅供参考,可以根据实际情况修改. #!/bin/sh #auto backup mysql #wugk #Define PATH定义变量 ...

  5. 吻逗死(windows)系统下自动部署脚本(for java spring*)及linux命令行工具

    转载请注明出处:https://www.cnblogs.com/funnyzpc/p/10051647.html (^^)(^^)自動部署腳本原本在上個公司就在使用,由於近期同事需要手動部署一個Spr ...

  6. Tomcat项目自动部署脚本

    一般情况下使用的Linux环境都是加固的,root路径只有超级管理员权限才能进入.我们新建一个自己的用户,在/home下会有一个用户目录,传输war包都放在这个目录下,此时不动webapps文件下的内 ...

  7. 做了一个简易的git 代码自动部署脚本

    做了一个简易的git 代码自动部署脚本 http://my.oschina.net/caomenglong/blog/472665 发表于2个月前(2015-06-30 21:08)   阅读(200 ...

  8. linux shell:nginx日志切割脚本

    需求原因:nginx不具备日志切割功能,日志量较大,方便分析. 实现目的:完成nginx日志切割,并根据时间命名   简要命令: mv /usr/local/tengine/logs/access.l ...

  9. 【Shell学习笔记3》实践项目自动部署脚本】shell中获取返回值、获取当前sh文件路径

    原创部分: 1.获取返回值 #This is a shell to Deploy Project #!/bin/bashcheck_results=`ps -ef | grep "java& ...

随机推荐

  1. js几种生成随机颜色方法

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  2. 由于目标计算机积极拒绝,无法连接。 192.168.1.106:8078 说明: 执行当前 Web 请求期间,出现未经处理的异常。

    请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息. 异常详细信息: System.Net.Sockets.SocketException: 由于目标计算机积极拒绝,无法连接. 1 ...

  3. GDAL生成Erdas Imagine

    GDAL原生支持超过100种栅格数据类型,涵盖所有主流GIS与RS数据格式,包括•  ArcInfo grids, ArcSDE raster, Imagine, Idrisi, ENVI, GRAS ...

  4. 错误:当你使用id作为sharepoint的自定义页面的查询参数时,总会提示项目不存在!

    No item exists at http://SERVER/SITE/mypage.aspx?ID=1. It may have been deleted or renamed by anothe ...

  5. Java Web之网上购物系统(提交订单、查看我的订单)

    作业终于做完了,好开心......虽然这一周经历不是那么顺利,但是觉得还是收获了不少,有过想哭的冲动,代码不会写,事情办不好,各种发愁.空间里发小发了带父母出去游玩的照片,瞬间能量值不知道是被击退的多 ...

  6. c++宏定义命令

    在程序开始以#开头的命令,他们是预编译命令.有三类预编译命令:宏定义命令.文件包含命令.条件编译命令:今天聊聊宏定义: 宏定义命令将一个标识符定义为一个字符串,源程序中的该标识符均以指定的字符串来代替 ...

  7. 信息系统实践手记6-JS调用Flex的性能问题一例

    说明:信息系统实践手记系列是系笔者在平时研发中先后遇到的大小的问题,也许朴实和细微,但往往却是经常遇到的问题.笔者对其中比较典型的加以收集,描述,归纳和分享. 摘要:此文描述了笔者接触过的部分信息系统 ...

  8. 让代码更简单——自定义toBean实现

    经过历时三天的鏖战,终于将阶段性项目——新闻发布系统做完了.在编码过程中,发现了很多冗余代码,统一流程,却需要不断重复编码——将用户输入实例化为对象的过程. 例: Person.set("i ...

  9. [MySQL Reference Manual] 23 Performance Schema结构

    23 MySQL Performance Schema 23 MySQL Performance Schema 23.1 性能框架快速启动 23.2 性能框架配置 23.2.1 性能框架编译时配置 2 ...

  10. easyui表格的增删改查

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...