shell基础之多功能nginx(安装、重启、停止等)
1 #!/bin/bash
2 #要求:检查本机是否已编译安装nginx,检查本机是否存在nginx源码包,编译安装nginx,实现开启、停止、查看状态等功能
3 #检查是否已编译安装nginx
4 while :
5 do
6 read -p "本机是否安装nginx?yes查看nginx状态,no跳转至安装nginx(yes/no):" wh_do
7 if [ "$wh_do" == "no" ];then
8 while :
9 do
10 read -p "是否确定编译安装nginx(yes/no)no表示退出脚本:" YON
11 if [ "$YON" == "yes" ];then
12 check_install=$(ls /usr/local |grep nginx)
13 if [ -n "$check_install" ];then
14 echo "已经编译安装nginx"
15 break
16 else
17 #配置本地yum源
18 mount_point=$(ls / |grep local_dvd)
19 if [ -z "$mount_point" ];then
20 mkdir /local_dvd
21 mount /dev/cdrom /local_dvd
22 echo "/dev/cdrom /local_dvd iso9660 defaults 0 0 " >> /etc/fstab
23 rm -rf /etc/yum.repos.d/*.repo
24 echo "[local]
25 name=local
26 baseurl=file:///local_dvd
27 enabled=1
28 gpgcheck=0 " >> /etc/yum.repos.d/local.repo
29 fi
30 check_have=$(find / -name nginx-*.tar.gz |head -n 1)
31 if [ -z "$check_have" ];then
32 yum -y install wget
33 wget http://nginx.org/download/nginx-1.16.0.tar.gz
34 fi
35 check_have=$(find / -name nginx-*.tar.gz |head -n 1)
36 #检查防火墙环境
37 se_status=$(getenforce)
38 if [ "$se_status"=="Enforcing" ];then
39 setenforce 0
40 sed -i "s/=Enforcing/=Disabled/g" /etc/selinux/config
41 fi
42 systemctl start firewalld
43 systemctl enable firewalld
44 #安装依赖包
45 yum -y install gcc-* zlib-* pcre-*
46 #解压nginx包
47 tar xzf $check_have -C /root/
48 #编译安装nginx
49 cd /root/nginx-*
50 pwd
51 ./configure && make && make install
52 /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
53 fi
54 if `firewall-cmd --list-port |grep 80/tcp`
55 then
56 break
57 else
58 firewall-cmd --add-port=80/tcp
59 firewall-cmd --add-port=80/tcp --permanent
60 fi
61 break
62 elif [ "$YON" == "no" ];then
63 echo "退出脚本"
64 exit
65 else
66 echo "请输入正确的内容"
67 continue
68 fi
69 done
70 #nginx启动、停止、查看状态
71 elif [ "$wh_do" == "yes" ];then
72 check_install=$(ls /usr/local |grep nginx)
73 if [ -z "$check_install" ];then
74 echo "您未编译安装nginx,请先安装"
75 continue
76 fi
77 while :
78 do
79 read -p "请输入你要执行操作的序号(0-退出;1-开启;2-停止;3-重启;4-查看状态)" NUM
80 case $NUM in
81 0)
82 echo "退出脚本"
83 exit
84 ;;
85 1)
86 PID=$(ps aux |grep nginx |grep master |awk '{print $2}')
87 if [ -z "$PID" ];then
88 /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
89 echo "启动nginx"
90 else
91 echo "nginx已经启动"
92 fi
93 ;;
94 2)
95 PID=$(ps aux |grep nginx |grep master |awk '{print $2}')
96 if [ -z "$PID" ];then
97 echo "nginx已经停止"
98 else
99 echo "停止nginx"
100 kill $PID
101 fi
102 ;;
103 3)
104 PID=$(ps aux |grep nginx |grep master |awk '{print $2}')
105 if [ -n "$PID" ];then
106 kill $PID
107 fi
108 /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
109 echo "重启nginx"
110 ;;
111 4)
112 PID=`ps aux |grep nginx |grep master |awk '{print $2}'`
113 if [ -z "$PID" ];then
114 echo "nginx已停止"
115 else
116 echo "nginx已开启"
117 fi
118 ;;
119 *)
120 echo "请输入正确的序号"
121 ;;
122 esac
123 done
124 else
125 echo "请输入正确的选项"
126 continue
127 fi
128 done
shell基础之多功能nginx(安装、重启、停止等)的更多相关文章
- linux笔记:shell基础-bash基本功能
历史命令的调用: 命令和文件补全(如果当前有多个可选的补全,则按2次tab键,可以列出所有的可选项): 命令别名: 让别名永久生效: 删除别名: bash常用快捷键: 标准输入输出: 输出重定向: 输 ...
- Linux学习 -- Shell基础 -- Bash基本功能
历史命令 history -c clear -w 写入 ~/.bash_history 默认保存1000条, 可在/etc/profile中修改 调用 Tab补全 命令.目录.文件 命令别名 ...
- ubuntu 14.04(desktop amd 64) nginx 安装启动停止
sudo apt-get install nginx 关闭: sudo service nginx stop 启动: sudo nginx
- 1.Nginx安装
1.Nginx安装配置 Nginx("engine x")是一款是由俄罗斯的程序设计师Igor Sysoev所开发的高性能 Web和 反向代理服务器,也是一个 IMAP/POP3/ ...
- Nginx入门篇-基础知识与linux下安装操作
我们要深刻理解学习NG的原理与安装方法,要切合实际结合业务需求,应用场景进行灵活使用. 一.Nginx知识简述Nginx是一个高性能的HTTP服务器和反向代理服务器,也是一个 IMAP/POP3/SM ...
- nginx安装及基础配置(含jdk安装及配置)
0.jdk安装配置 #下载相应的jdk软件包,然后解压安装,我这里包名称为:jdk-7u25-linux-x64.tar.gz tar -xzf jdk-7u25-linux-x64.tar.gz m ...
- nginx安装和基础代理配置
mac上执行 npm install nginx 安装好后运行nginx sudo nginx 一般mac下nginx会安装在 /usr/local/etc/nginx 下 里面的nginx.conf ...
- LVS + Keepalived + Nginx安装及配置
1.概述 上篇文章<架构设计:负载均衡层设计方案(6)——Nginx + Keepalived构建高可用的负载层>(http://blog.csdn.net/yinwenjie/artic ...
- 架构设计:负载均衡层设计方案(7)——LVS + Keepalived + Nginx安装及配置
1.概述 上篇文章<架构设计:负载均衡层设计方案(6)——Nginx + Keepalived构建高可用的负载层>(http://blog.csdn.net/yinwenjie/artic ...
随机推荐
- 【CTF】WDCTF-2017 3-1 writeup
题目来源:WDCTF-2017 题目链接:https://adworld.xctf.org.cn/task/answer?type=misc&number=1&grade=1& ...
- 多线程之Lock接口
之前写了一下synchronized关键字的一点东西,那么除了synchronized可以加锁外,JUC(java.util.concurrent)提供的Lock接口也可以实现加锁解锁的功能. 看完本 ...
- 05.ElementUI源码学习:项目发布配置(github pages&npm package)
0x00.前言 书接上文.项目第一个组件已经封装好,说明文档也已编写好.下面需要将说明文档发布到外网上,以此来展示和推广项目,使用 Github Pages功能实现.同时将组件发布之 npm 上,方便 ...
- hdu1816 + POJ 2723开锁(二分+2sat)
题意: 有m层门,我们在最外层,我们要一层一层的进,每一层上有两把锁,我们只要开启其中的一把们就会开,我们有n组钥匙,每组两把,我们只能用其中的一把,用完后第二把瞬间就会消失,问你最多能开到 ...
- PAT 乙级 -- 1010 -- 一元多项式求导
题目简述 设计函数求一元多项式的导数.(注:xn(n为整数)的一阶导数为n*xn-1.) 输入格式:以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过1000的整数).数字间以空格分隔. 输出 ...
- Win64 驱动内核编程-8.内核里的其他常用
内核里的其他常用 1.遍历链表.内核里有很多数据结构,但它们并不是孤立的,内核使用双向链表把它们像糖 葫芦一样给串了起来.所以遍历双向链表能获得很多重要的内核数据.举个简单的例子,驱 动对象 Driv ...
- 在kubernetes上运行WASM负载
在kubernetes上运行WASM负载 WASM一般用在前端业务中,但目前有扩展到后端服务的趋势.本文使用Krustlet 将WASM服务部署到kubernetes. 简介 Krustlet 是一个 ...
- <JVM上篇:内存与垃圾回收篇>02-类加载子系统
笔记来源:尚硅谷JVM全套教程,百万播放,全网巅峰(宋红康详解java虚拟机) 同步更新:https://gitee.com/vectorx/NOTE_JVM https://codechina.cs ...
- 解决GET http://localhost:8080/js/layui/layui.js net::ERR_ABORTED 404
用ssm+layui在写页面的时候,发现无法找到资源路径 <script src="js/layui/layui.js" charset="utf-8"& ...
- SecureCRT 基本设置
1:字体与大小 Lucida Console 四号 2:声音关闭 Terminal-->Audio bell不勾选 默认网络工程师常用: Terminal-->Emulation--& ...