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 ...
随机推荐
- [面试仓库]CSS面试题汇总--布局篇
一,盒模型 说到 CSS 布局这块的内容,首当其冲的就是我们的盒模型宽度计算问题,在开始我们的问题之前,我们首先要搞懂这些概念: 盒模型里面的内容(content): 也就是实实在在要展现的内容, ...
- Ubuntu所有版本下载及更新源
官网:https://www.ubuntu.com/download/desktop没找到历史版本,且下载速度很慢在网易镜像站下载ubuntu:网址:http://mirrors.163.com/ub ...
- 2. Mybatis Select
mybatis select是mybatis 中最常用的元素之一. 对简单的查询,select 元素的配置是相当简单的: <?xml version="1.0" encodi ...
- 女娲造人引发思考之Java设计模式:工厂模式
目录 工厂模式的几种形态 简单工厂模式 示例 结构 优缺点 女娲抟土造人 工厂方法模式 结构 女娲举绳造人 抽象工厂模式 结构 女娲造万物 工厂模式的几种形态 工厂模式专门负责将大量有共同接口的类实例 ...
- 横趟!面试中遇到的 ZooKeeper 问题
本文作者:HelloGitHub-老荀 本文是 HelloZooKeeper 系列的最后一篇文章,接下来主要聊聊面试中如果被问到 ZooKeeper 的问题如何回答,也可以当作学完本系列的测试. 准备 ...
- The Dole Queue UVA - 133
In a serious attempt to downsize (reduce) the dole queue, The New National Green Labour Rhinoceros ...
- Unity基础—Computer Shader
Computer Shader是什么? Computer shader是一段运行在GPU上的一段程序. 什么时候用Computer shader? 假如我们把一个cube当作单独的点,用许多个(cub ...
- 473. Matchsticks to Square
Remember the story of Little Match Girl? By now, you know exactly what matchsticks the little match ...
- Python socket(TCP阻塞模式)基础程式
前置知识:Python基础语法,socket库 tips: 1. 默认HOST_IP:127.0.0.1 2. 默认HOST_PORT:7676 参考代码: 1. 客户端程式 #!/usr/bin/e ...
- hdu4515 小模拟
题意: 给你当期日期,问前D天和后D天的年月日. 思路: 直接模拟就行了水题,对了别忘了题目2013,3,5要输出这样的2013/03/05. #include<stdio ...