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服务管理->的更多相关文章

  1. 烂泥:学习tomcat之通过shell批量管理多个tomcat

    本文由ilanniweb提供友情赞助,首发于烂泥行天下 想要获得更多的文章,可以关注我的微信ilanniweb 公司的业务是使用tomcat做web容器,为了更有效的利用服务器的性能,我们一般部署多个 ...

  2. [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 ...

  3. 如何写SysV服务管理脚本

    本文目录: 1.1 SysV脚本的特性1.2 SysV脚本要具备的能力1.3 start函数分析1.4 stop函数分析1.5 reload函数分析1.6 status.restart.force-r ...

  4. centOS7服务管理与启动流程

    centOS7服务管理与启动流程 centOS7启动流程 systemd简介 unit对象 unit类型 特性 service unit文件格式 service unit file文件通常由三部分组成 ...

  5. Linux之服务管理

    一.计划任务 1) Crontab简介 1.Crontab是一个用于设置周期性被执行任务的工具: 2.被周期性执行的任务我们称为Cron Job: 3.周期性执行的任务列表我们称为Cron Table ...

  6. (二)Linux实操之——网络配置、进程管理、服务管理、组管理、YUM

    接上段   (一)Linux实操之——权限.任务调度.磁盘分区 4.网络配置 4.1 NAT模式的网络配置 目前我们采用的网络配置是NAT模式. windows下cmd通过 ipconfig 命令可以 ...

  7. 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 ...

  8. Linux学习笔记(3)linux服务管理与启停

    一.LINUX 系统服务管理 1.RHEL/OEL 6.X及之前 service命令用于对系统服务进行管理,比如启动(start).停止(stop).重启(restart).查看状态(status)等 ...

  9. Linux软件安装——服务管理的命令

    Linux软件安装——服务管理的命令 摘要:本文主要学习了Linux系统中服务管理的命令. service命令 service命令用于对系统服务进行管理,比如启动(start).停止(stop).重启 ...

随机推荐

  1. linq 获取实体列表中的某个字段返回ilist<string>

     var list = list.Select(t => t.Field<string>("列名")).ToList();  var list = list.Se ...

  2. [洛谷P4340][SHOI2016]随机序列

    题目大意:有$n(n\leqslant10^5)$个数,每两个数之间可以加入$+-\times$三种符号,$q(q\leqslant10^5)$次询问,每次询问修改一个数后,所有表达式可能的值的和 题 ...

  3. SpringBoot入门系列HelloWorld

    根据咱们程序员学习的惯例,学习一门新技术都是从HelloWorld开始的. 感觉编程是一件非常富有意义的事情,程序员也是一群可爱的人,渴望被关怀和关注,因为我们总在和世界say Hi. 好了进入正题 ...

  4. 【CF710F】String Set Queries(二进制分组,AC自动机)

    [CF710F]String Set Queries(二进制分组,AC自动机) 题面 洛谷 CF 翻译: 你有一个字符集合\(D\),初始为空, 有三种操作: 往\(D\)中加入一个串:从\(D\)中 ...

  5. 【bzoj4520】 Cqoi2016—K远点对

    http://www.lydsy.com/JudgeOnline/problem.php?id=4520 (题目链接) 题意 求平面内第K远点对的距离. Solution 左转题解:jump 细节 刚 ...

  6. Monitor WMIExportsToC++Use DiskCleanup bypass UAC

    作者:嘶吼吼链接:https://zhuanlan.zhihu.com/p/23473665来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. About: Use odb ...

  7. 解题:POI 2009 Fire Extinguishers

    题面 洛谷数据非常水,建议去bzoj 我第一眼一看这不是那个POI2011的升级版吗(明明这个是2009年的,应该说那个是这个的弱化版,果然思想差不多. 因为$k$很小,可以考虑每个间隔距离来转移.我 ...

  8. [NOI2011]阿狸的打字机——AC自动机之fail树的利用

    Description 阿狸喜欢收藏各种稀奇古怪的东西,最近他淘到一台老式的打字机.打字机上只有28个按键,分别印有26个小写英文字母和'B'.'P'两个字母. 经阿狸研究发现,这个打字机是这样工作的 ...

  9. (转)解决dubbox-demo-provider.xml报错的问题:提示Failed to read schema document

    背景:在eclipse项目中,经常会遇到xml文件提示找不到.xsd文件的情况.很有必要弄清xsd文件的加载过程! 1 解决过程 dubbo-demo-provider导入eclipse后dubbox ...

  10. 【枚举&数据结构】【P2484】 [SDOI2011]打地鼠

    Description 给定一个网格,每个格子上有一个数字.一次操作可以将 \(r~\times~c\) 的一块矩形的数字减去 \(1\).必须保证这个矩形中的数全部为正.每次操作的 \(r\) 和 ...