shell服务管理->
nginx.php等服务管理练习脚本
->nginx的启动状态
root@jumpserver- day02]# cat nginx_web.sh
#!/bin/bash
source /etc/init.d/functions nginx_status() {
if [ $? -eq ];then
action "nginx is $1 OK!" /bin/true
else
action "nginx is $1 failed!" /bin/false
fi
} case $ in
start)
nginx &>/dev/null
nginx_status $
;;
stop)
nginx -s stop &>/dev/null
nginx_status $
;;
reload)
nginx -s reload &>/dev/null
nginx_status $
;;
*)
echo "USAGE:$0{start|stop|reload}"
esac
->安装nginx->查看状态
echo "===============================System Repo============================="
Repos=$(yum repolist |grep nginx|wc -l)
if [ $Repos -eq ];then echo "没有发现Nginx的yum仓库...尝试中" cat >/etc/yum.repos.d/nginx.repo <<-EOF #使用cat方法导入
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/x86_64/
gpgcheck=
enabled=
EOF yum makecache &>/dev/null #清空缓存 Repos2=$(yum repolist |grep nginx|wc -l) #再次yum尝试安装 if [ $Repos2 -eq ];then
echo "yum仓库已经安装完成...."
else
echo "请检查你的网络环境...."
exit
fi
else echo "已存在Nginx的Repos仓库文件..." fi echo "===============================System Nginx Install=======================" Rpm_Nginx=$(rpm -qa nginx | wc -l) if [ $Rpm_Nginx -gt ];then
echo "Nginx 已经安装....."
else
echo "尝试安装Nginx...."
yum install nginx -y &>/dev/null
fi echo "=======================System Nginx Status ======================" Nginx_Status=$(systemctl status nginx|grep running|wc -l)
if [ $Nginx_Status -eq ];then echo "Nginx已经启动" else
echo "Nginx尝试启动" pkill httpd &>/dev/null
pkill nginx &>/dev/null systemctl start nginx &>/dev/null if [ $? -eq ];then
Nginx_Status2=$(systemctl status nginx|grep Active|awk '{print $2 $3}')
echo "nginx启动完成, 当前的状态是: $Nginx_Status2"
else
echo "启动失败, 请手动排查......"
fi
fi
->nginx状态管理
[root@jumpserver- scripts]# cat nginx_status.sh
#!/bin/bash echo "-----------------------"
echo "1:开启"
echo "2:停止"
echo "3:重载"
echo "4:重启"
echo "5:状态"
echo "-----------------------" read -p "请输入您要执行的命令:" command case $command in
)
status_start=$(systemctl status nginx | egrep "running" |wc -l)
if [ $status_start -eq ];then echo "nginx已经启动,不需要执行启动操作"
else
systemctl start nginx &>/dev/null
echo "nginx已经启动"
fi
;;
)
systemctl stop nginx &>/dev/null
echo "nginx已经停止"
;;
)
status_start=$(systemctl status nginx | egrep "running" |wc -l)
if [ $status_start -eq ];then
systemctl reload nginx &>/dev/null
echo "nginx已经重载"
fi
;;
)
systemctl restart nginx &>/dev/null
echo "nginx已经重启"
;;
)
systemctl status nginx
;;
*)
echo "请您选择正确的命令"
exit
esac
->nginx状态监控脚本(zabbix)
[root@web03 day01]# cat nginx_status.sh
#!/bin/bash
############################################################
# $Name: nginx_status.sh
# $Version: v1.
# $Function: Nginx Status
# $Author:
# $organization:
# $Create Date: --
# $Description: Monitor Nginx Service Status
############################################################ NGINX_COMMAND=$
NGINX_PORT= nginx_active(){
/usr/bin/curl -s "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" |awk '/Active/ {print $NF}'
} nginx_reading(){
/usr/bin/curl -s "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" |awk '/Reading/ {print $2}'
} nginx_writing(){
/usr/bin/curl -s "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" |awk '/Writing/ {print $4}'
} nginx_waiting(){
/usr/bin/curl -s "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" |awk '/Waiting/ {print $6}'
} nginx_accepts(){
/usr/bin/curl -s "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" |awk 'NR==3 {print $1}'
} nginx_handled(){
/usr/bin/curl -s "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" |awk 'NR==3 {print $2}'
} nginx_requests(){
/usr/bin/curl -s "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" |awk 'NR==3 {print $3}'
} case $NGINX_COMMAND in
active)
nginx_active;
;;
reading)
nginx_reading;
;;
writing)
nginx_writing;
;;
waiting)
nginx_waiting;
;;
accepts)
nginx_accepts;
;;
handled)
nginx_handled;
;;
requests)
nginx_requests;
;;
*)
echo $"USAGE:$0 {active|reading|writing|waiting|accepts|handled|requests}"
esac
->简单参考版
[root@web03 scripts]# cat nginx_status.sh
#!/bin/bash port= while true
do if [ $# -eq ];then
case $ in
active)
curl -s 127.0.0.1${port}/status | awk '/Active/{print $NF}'
break
;;
accepts)
curl -s 127.0.0.1${port}/status | awk 'NR==3{print $1}'
break
;;
handled)
curl -s 127.0.0.1${port}/status | awk 'NR==3{print $2}'
break
;;
request)
curl -s 127.0.0.1${port}/status | awk 'NR==3{print $3}'
break
;;
*)
echo "USAGE $0 {active|accepts|requests|handled}"
exit
esac
else
echo "参数只能为1个,请参考{active|accepts|requests|handled}"
break
fi
done
->根据系统版本安装yum源
[root@jumpserver- scripts]# cat repo.sh
#!/bin/bash os_name=$(cat /etc/redhat-release )
os_version=$(cat /etc/redhat-release |awk -F " " '{print $4}'| awk -F "." '{print $1}') if [ $os_version -eq ];then echo "这是$os_name的系统,请安装centos7的yum源"
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo &>/dev/null
echo "$os_name:yum源安装完成" elif [ $os_version -eq ];then echo "这是$os_name系统,请安装centos6的yum源"
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo &>/dev/null
echo "$os_name:yum源安装完成" elif [ $os_version -eq ];then echo "这是$os_name系统,请安装centos6的yum源"
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-5.repo &>/dev/null
echo "$os_name:yum源安装完成" else
echo "请检查系统的版本" fi
->选择php版本安装
[root@jumpserver- scripts]# cat php.sh
#!/bin/bash echo '1=(php-5.0)'
echo '2=(php-6.0)'
echo '3=(php-7.0)' read -p "请输入要安装的版本:" num if [ $num -eq ];then echo "正在安装php5.0" elif [ $num -eq ];then echo "正在安装php6.0" elif [ $num -eq ];then echo "正在安装7.0"
else
echo "请选择安装版本"
fi
shell服务管理->的更多相关文章
- 烂泥:学习tomcat之通过shell批量管理多个tomcat
本文由ilanniweb提供友情赞助,首发于烂泥行天下 想要获得更多的文章,可以关注我的微信ilanniweb 公司的业务是使用tomcat做web容器,为了更有效的利用服务器的性能,我们一般部署多个 ...
- [MySQL Reference Manual] 5 MySQL 服务管理
5. MySQL 服务管理 5. MySQL 服务管理 5.1 The Mysql Server 5.2 Mysql 服务日志 5.2.1 选择General query log和slow query ...
- 如何写SysV服务管理脚本
本文目录: 1.1 SysV脚本的特性1.2 SysV脚本要具备的能力1.3 start函数分析1.4 stop函数分析1.5 reload函数分析1.6 status.restart.force-r ...
- centOS7服务管理与启动流程
centOS7服务管理与启动流程 centOS7启动流程 systemd简介 unit对象 unit类型 特性 service unit文件格式 service unit file文件通常由三部分组成 ...
- Linux之服务管理
一.计划任务 1) Crontab简介 1.Crontab是一个用于设置周期性被执行任务的工具: 2.被周期性执行的任务我们称为Cron Job: 3.周期性执行的任务列表我们称为Cron Table ...
- (二)Linux实操之——网络配置、进程管理、服务管理、组管理、YUM
接上段 (一)Linux实操之——权限.任务调度.磁盘分区 4.网络配置 4.1 NAT模式的网络配置 目前我们采用的网络配置是NAT模式. windows下cmd通过 ipconfig 命令可以 ...
- centos linux系统日常管理3 服务管理ntsysv,chkconfig,系统日志rsyslog,last ,lastb ,exec,xargs,dmesg,screen,nohup,curl,ping ,telnet,traceroute ,dig ,nc,nmap,host,nethogs 第十六节课
centos linux系统日常管理3 服务管理ntsysv,chkconfig,系统日志rsyslog,last ,lastb ,exec,xargs,dmesg,screen,nohup,cur ...
- Linux学习笔记(3)linux服务管理与启停
一.LINUX 系统服务管理 1.RHEL/OEL 6.X及之前 service命令用于对系统服务进行管理,比如启动(start).停止(stop).重启(restart).查看状态(status)等 ...
- Linux软件安装——服务管理的命令
Linux软件安装——服务管理的命令 摘要:本文主要学习了Linux系统中服务管理的命令. service命令 service命令用于对系统服务进行管理,比如启动(start).停止(stop).重启 ...
随机推荐
- USACO Section 1.5 Number Triangles 解题报告
题目 题目描述 现在有一个数字三角形,第一行有一个数字,第二行有两个数字,以此类推...,现在从第一行开始累加,每次在一个节点累加完之后,下一个节点必须是它的左下方的那个节点或者是右下方那个节点,一直 ...
- Linux查看硬件信息命令
一.查看服务器硬件信息 (1)查看服务器型号.序列号 [root@Master ~]# dmidecode|grep "System Information" -A9|egrep ...
- 使用IPMI控制/监控Linux服务器
1 IPMI简述 IPMI提供了很多丰富功能,我使用的功能,说得大白话一点,就是: 1.获取本设备的硬件信息:包括CPU和主板的温度.电压.风扇转速. 2.在设备A上,通过命令,控制远程设 ...
- Android Studio多Module使用 aar 依赖包 丢包解决
FAQ: AAR打包引用丢包问题, jar, aar, dependency 嵌套层级依赖的丢失 问: aar包中,如何包含第三方依赖库? 如果直接作为module 依赖是没有问题的,但是如果打包成a ...
- 解题:APIO/CTSC 2007 数据备份
题面 用双向链表把相邻两项的差串起来,用大根堆维护价值,每次贪心取最大的$x$.取完之后打标记删掉$pre[x]$和$nxt[x]$,之后用$val[pre[x]]+val[nxt[x]]-val[x ...
- supervisor "INFO spawnerr: unknown error making dispatchers for xxx" 错误
查看 supervisor 的配置中,是否有受限的文件路径,如果有,则需要修改对应文件的权限
- vim文件头部注释配置
http://note.youdao.com/noteshare?id=26dff538fabf3e8a0c4e85815256d5bb
- 深入理解Python中的元类(metaclass)
原文 译注:这是一篇在Stack overflow上很热的帖子.提问者自称已经掌握了有关Python OOP编程中的各种概念,但始终觉得元类(metaclass)难以理解.他知道这肯定和自省有关,但仍 ...
- nltk_29_pickle保存和导入分类器
sklearn实战-乳腺癌细胞数据挖掘(博主亲自录制视频教程) https://study.163.com/course/introduction.htm?courseId=1005269003&am ...
- [非常重要的总结] Linux C相关函数
(1)字符测试函数 isalnum(测试字符是否为英文字母或数字) isalpha(测试字符是否为英文字母) isascii(测试字符是否为ASCII码字符) isblank(测试字符是否为空格字符) ...