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. BZOJ 4520: [Cqoi2016]K远点对

    4520: [Cqoi2016]K远点对 Time Limit: 30 Sec  Memory Limit: 512 MBSubmit: 638  Solved: 340[Submit][Status ...

  2. BZOJ 1036 树的统计 | 树链剖分模板题

    又做了一遍--去掉读入优化只有八十行~ #include <cstdio> #include <cstring> #include <algorithm> usin ...

  3. ubuntu 安装python3.6.6

    http://www.cnblogs.com/yhongji/p/9383857.html https://www.jianshu.com/p/1565f38f4236 ./configure --w ...

  4. Redis学习基础三

    回顾: 上一基础上浅尝了redis的存储数据类型,这一节将分别介绍数据类型的基础使用 一.启动本地Redis服务 1.打开cmd 窗口 使用 cd 命令切换至redis 安装根目录 运行: redis ...

  5. ajax的坑

    $('#mkcode').on('click',function(){ $.ajax({ type : 'POST', url : '__URL__/mkcode', data : {}, dataT ...

  6. Kubernetes集群部署--kubernetes1.10.1

    参考博客:https://mritd.me/2018/04/19/set-up-kubernetes-1.10.1-cluster-by-hyperkube/ 一.环境 (1)系统环境 IP 操作系统 ...

  7. etcd基本操作

    目录 概述 安装etcd 使用etcdctl操作etcd 数据库操作 非数据库操作 使用curl操作etcd 概述 etcd是一个用于共享配置和服务的高可用键值存储系统,由CoreOS使用开发并作为C ...

  8. P3014 [USACO11FEB]牛线Cow Line && 康托展开

    康托展开 康托展开为全排列到一个自然数的映射, 空间压缩效率很高. 简单来说, 康托展开就是一个全排列在所有此序列全排列字典序中的第 \(k\) 大, 这个 \(k\) 即是次全排列的康托展开. 康托 ...

  9. 转:SkipList跳表

    http://kenby.iteye.com/blog/1187303 相关概念: 1.几何分布 http://baike.baidu.com/link?url=DdtNq6pCWIvr7onVBtE ...

  10. np.isin判断数组元素在另一数组中是否存在

    np.isin用法 觉得有用的话,欢迎一起讨论相互学习~Follow Me np.isin(a,b) 用于判定a中的元素在b中是否出现过,如果出现过返回True,否则返回False,最终结果为一个形状 ...