网站建设功能报,数据分析师就业前景,企业邮箱登陆,建设一个门户网站 费用前言
今天终于敢说自己是csdn万粉博主了#xff0c;感谢大家的厚爱#xff0c;我会继续输出更多优质的好文章#xff0c;一起学习。
座右铭#xff1a; 先努力让自己发光#xff0c;再帮助更多的人。 #x1f3e0; 个人主页#xff1a;我是沐风晓月 #x1f9d1; 个人…前言
今天终于敢说自己是csdn万粉博主了感谢大家的厚爱我会继续输出更多优质的好文章一起学习。
座右铭 先努力让自己发光再帮助更多的人。 个人主页我是沐风晓月 个人简介大家好我是沐风晓月双一流院校计算机专业阿里云博客专家 csdn万粉博主 座右铭先努力成长自己再帮助更多的人一起加油进步 欢迎大家这里是CSDN我总结知识的地方喜欢的话请三连有问题请私信 文章目录前言1. 实现的功能2. 脚本思路3. 脚本代码4. 测试5. 脚本优化总结1. 实现的功能
实现自动管理nginx启动停止和运行实现检测配置文件是否正确配置虚拟主机
2. 脚本思路 指定nginx工作路径 nginx/usr/local/nginx/sbin/nginx 让用户输入要进行的操作比如start,stop,status,reload,true 其中 start 表示启动nginxstop 表示停止服务status 表示查看nginx服务的状态reload 平滑加载配置文件true 判断配置文件是否正确restart 表示设置nginx重新启动与平滑启动有区别 判断nginx是否已经启动
netstat -nlpt | grep nginx /dev/null echo ok || echo nginx stoped
基于这个方法我们可以使用if语句判断执行是否成功执行成功结果 echo $?0,否则就不为0
使用case语句指定start,stop,status,reload,true并进行相关的设置。
3. 脚本代码
#!/bin/bash
NGX/usr/local/nginx/sbin/nginx
while true
do
read -ep 请输入要执行的命令(start/stop/status/restart/true/reload) importcase $import in#启动nginx选项start)#先检测nginx是否已经启动netstat -nlpt | grep nginx /dev/nullif [ $? -eq 0 ];thenecho nginx已经启动elseecho 开始启动nginx$NGX echo nginx 启动成功fi;;#停止nginx运行stop)$NGX -s stop#判断nginx是否已经停止if [ $? -eq 0 ];thenecho nginx已经停止运行elseecho nginx停止失败请重试fi;;#nginx的状态status)netstat -nlpt | grep nginx /dev/nullif [ $? -eq 0 ];thenecho nginx已经启动elseecho nginx没有运行fi;;#重载nginxreload)$NGX -s reloadif [ $? -eq 0 ];thenecho nginx重载成功elseecho nginx重载失败请重试fi;;restart)$NGX -s stop echo nginx服务已经关闭echo 正在重启服务$NGX echo nginx 已经启动;;true)$NGX -t echo 配置文件准确无误 || echo “配置文件出现问题请进行查证”*)echo 请按提示正确输入echo -e t start|stop|restart|status|reloadt;;
esac
done4. 测试
给脚本执行权限
[rootmufeng41 ~]# vim ng.sh
[rootmufeng41 ~]# chmod x ng.sh
[rootmufeng41 ~]# ./ng.sh
请输入要执行的命令(start/stop/status/restart/true/reload)start
nginx已经启动
请输入要执行的命令(start/stop/status/restart/true/reload)status
nginx已经启动
请输入要执行的命令(start/stop/status/restart/true/reload)reload
nginx重载成功
请输入要执行的命令(start/stop/status/restart/true/reload) 5. 脚本优化
使用tput命令设置终端特性tput可以设置
在屏幕上移动光标。获取终端信息。设置颜色背景和前景。设置加粗模式。设置反转模式等等
常见命令示例
tput clear # 清屏tput sc # 保存当前光标位置tput cup 10 13 # 将光标移动到 row coltput civis # 光标不可见tput cnorm # 光标可见tput rc # 显示输出exit 0
例如 tput cup 5 1 将光标移动到第 5 列 (X) 的第 1 行 (Y)要更改文本的颜色
setb 选项用于设置背景颜色setf 选项用于设置前景颜色 0 – Black黑色1 – Red红色2 – Green绿色3 – Yellow黄色4 – Blue蓝色5 – Magenta品红6 – Cyan青色7 – White白色例如
tput setb 6 tput setf 4接下来我们把上面的 脚本修改一下变成有控制面板的。
代码示例
[rootmufeng41 ~]# cat ng.sh
#!/bin/bash
NGX/usr/local/nginx/sbin/nginx
##
# clear the screen
tput clear# Move cursor to screen location X,Y (top left is 0,0)
tput cup 3 15# Set a foreground colour using ANSI escape
tput setaf 3
echo 沐风nginx管理系统
tput sgr0tput cup 5 17
# Set reverse video mode
tput rev
echo CSDN-我是沐风晓月
tput sgr0tput cup 7 15
echo 1. 开启nginxtput cup 8 15
echo 2. 关闭nginxtput cup 9 15
echo 3. 查看nginx状态tput cup 10 15
echo 4. 重新加载配置文件# Set bold mode
tput bold
tput cup 12 15
read -p Enter your choice [1-4] choice##
case $choice in#启动nginx选项1)#先检测nginx是否已经启动netstat -nlpt | grep nginx /dev/nullif [ $? -eq 0 ];thenecho nginx已经启动elseecho 开始启动nginx$NGX echo nginx 启动成功fi;;#停止nginx运行2)$NGX -s stop#判断nginx是否已经停止if [ $? -eq 0 ];thenecho nginx已经停止运行elseecho nginx停止失败请重试fi;;#nginx的状态3)netstat -nlpt | grep nginx /dev/nullif [ $? -eq 0 ];thenecho nginx已经启动elseecho nginx没有运行fi;;#重载nginx4)$NGX -s reloadif [ $? -eq 0 ];thenecho nginx重载成功elseecho nginx重载失败请重试fi;;*)echo 请按提示正确输入;;
esac[rootmufeng41 ~]#
执行结果
总结
在学习服务的过程中脚本可以随时穿插方便我们在学习上查缺补漏及时复习学过的每一个语法。 好啦这就是今天要分享给大家的全部内容了我们下期再见 博客主页mufeng.blog.csdn.net 本文由沐风晓月原创首发于CSDN博客 全力以赴持续学习不负如来不负卿喜欢的话记得点赞收藏哦