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对象和继承总结

    创建对象方式: [工厂模式]:无法解决对象识别问题 [构造函数模式]:每个方法都要在每个实例上创建一遍 [原型模式]:原型上属性为引用类型的问题,见例子 [组合模式]:解决上述问题 [动态原型模式]: ...

  2. ES6之const命令

    一直以来以ecma为核心的js始终没有常量的概念,es6则弥补了这一个缺陷: const foo='foo'; foo='bar';//TypeError: Assignment to constan ...

  3. GridView的各种属性

    <GridView android:id="@+id/movie_list" android:layout_width="906dp" android:l ...

  4. 转:使用 Spring Data JPA 简化 JPA 开发

    从一个简单的 JPA 示例开始 本文主要讲述 Spring Data JPA,但是为了不至于给 JPA 和 Spring 的初学者造成较大的学习曲线,我们首先从 JPA 开始,简单介绍一个 JPA 示 ...

  5. Visual Studio 2013 Preview 高清多图先睹为快

    Visual Studio 2013 Preview已经发布.大家可以下载试用了哦: 选项加载明显比之前版本要快很多.

  6. js内存泄露的几种情况详细探讨

    内存泄露是指一块被分配的内存既不能使用,又不能回收,直到浏览器进程结束.在C++中,因为是手动管理内存,内存泄露是经常出现的事情.而现在流行的C#和Java等语言采用了自动垃圾回收方法管理内存,正常使 ...

  7. NYOJ----776删除元素

    删除元素 时间限制:1000 ms  |  内存限制:65535 KB 描述 题意很简单,给一个长度为n的序列,问至少删除序列中多少个数,使得删除后的序列中的最大值<= 2*最小值 输入 多组测 ...

  8. javascript中的原型和继承

    javascript一直是初学者口中的难点,甚至一些有些许工作经验的人也不太明白其中的原理,而我就是那个初学者,前段时间在阮一峰老师的博客上看了一篇文章<javascript继承机制的设计思想& ...

  9. BZOJ3160万径人踪灭

    Description Input & Output & Sample Input & Sample Output HINT 题解: 题意即求不连续但间隔长度对称的回文串个数. ...

  10. orcle函数

    一.字符函数1.chr给出整数,返回对应的字符:SQL>select chr(54740) zhao,chr(65) chr65 from dual;ZHAO CHR65---- -----赵 ...