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): 也就是实实在在要展现的内容, ...
- spring-cloud-consul 服务注册发现与配置
下面是 Spring Cloud 支持的服务发现软件以及特性对比(Eureka 已停止更新,取而代之的是 Consul): Feature euerka Consul zookeeper etcd 服 ...
- docker之镜像配置
以管理员sudo执行以下命令 docker ps -a 查看镜像的id docker exec -it 镜像id /bin/bash -i表示交互模式 -t表示启动容器进入命令行 加入这两参数,容器创 ...
- (九)VMware Harbor 项目管理-上传/下载镜像
VMware Harbor项目管理 Harbor中的项目包含应用程序的所有存储库. Harbor有两类项目: 公共:所有用户都拥有公共项目的读取权限,您可以方便地以这种方式与其他人共享一些存储库. 私 ...
- 开源Influxdb2高性能客户端
前言 最近我在了解时序数据库Influxdb 2.x版本,体验一翻之后,感觉官方的出品的.net客户端还有很多优化的地方,于是闭关几天,不吃不喝,将老夫多年练就的高性能网络通讯与高性能Buffer操作 ...
- aws eks ebs StorageClass PersistentVolume PersistentVolumeClaim
aws EBS 提供存储资源 Amazon EBS CSI 驱动程序的安装,请参考https://docs.aws.amazon.com/zh_cn/eks/latest/userguide/ebs- ...
- 使用vue-element-admin框架从后端动态获取菜单
1.前言 vue-element-admin是一个纯前端的框架,左侧菜单是根据路由生成的.实际开发中经常需要根据当前登陆人员的信息从后端获取菜单进行展示,本文将详细介绍如何实现该功能. 2.详解 ...
- 9.while循环
while 循环 语法: while( 布尔表达式 ) { //循环内容 } 布尔值为 true 开始循环,为 false 结束循环 死循环:布尔值一直为 true. 例: package com.w ...
- 记一次linux下安装ftp的愉快体验
三三两两,试了几次就出来了,挺开心的 linux安装vsftpd,请自行百度 贴出部分配置点 阿里云服务器,开发相关端口以及部分区域端口访问 /etc/pad.d/vsftpd添加部分注释 #%PAM ...
- Android so注入( inject)和Hook(挂钩)的实现思路讨论
本文博客:http://blog.csdn.net/qq1084283172/article/details/54095995 前面的博客中分析一些Android的so注入和Hook目标函数的代码,它 ...