shell习题第13题:监控nginx进程】的更多相关文章

[题目要求] 在服务器上写一个脚本,要求如下 1. 每隔10秒去检查而一次服务器上的nginx进程数,如果>=500的时候,就需要自动重启一下nginx服务,并检测启动是否成功 2. 如没有正常启动还要再一次启动,最大不成功数超过5次则需要立即发邮件通知管理员,并且之后不需要再检测 3. 如果启动成功之后,1分钟后再次检测nginx进程,若正常则重复之前的操作(每隔10秒检查一次),若还是>=500,那放弃重启并需要发邮件给管理员,然后自动退出脚本.假设发邮件脚本为mail.py [核心要点]…
[题目要求] 一台机器负载高,top查看到有很多sh的进程,然后top -c查看可以看到对应的进程命令是sh -c /bin/clear.sh 经分析后发现是因为该脚本执行时间太长,导致后续执行时,上次的脚本还未执行结束,写一个脚本批量杀死所有的sh的进程 [核心要点] kill -9 pid [脚本] #!/bin/bash for p in `ps aux | grep clear.sh|awk '{print $2}'` do $p done #或者…
1.编写python脚本监控nginx #!/usr/bin/python # -*- coding: utf-8 -*- import os, sys, time import string import getopt def usage(): print """check_nginx is a Nagios to monitor nginx status Usage: check_nginx [-h|--help][-w|--warning][-c|--critical]…
确认nginx有没有安装模块 然后在主站点下添加(二级站点) location /NginxStatus { stub_status on; access_log off; allow 127.0.0.1; deny all; } 其实就是根据上图,得到以上数据,写脚本对其进程监控!! 根据站点的命令写成监控脚本(可以直接复制以下代码) #!/bin/bash # Description:zabbix监控nginx性能以及进程状态 # Note:此脚本需要配置在被监控端,否则ping检测将会得到…
[题目要求] 服务器上跑的是LNMP环境,近期总是有502现象.502为网站访问的状态码,200正常,502错误是nginx最为普遍的错误状态码. 由于502只是暂时的,并且只要一重启php-fpm服务则502消失,但不重启的话,则会一直持续很长时间. 所以有必要写一个监控脚本,监控访问日志的状态码,一旦发生502,则自动重启一下php-fpm. 502 作为网关或者代理工作的服务器尝试执行请求时,从远程服务器接收到了一个无效的响应 我们设定: 1)access_log /data/log/ac…
[题目要求] 设计一个脚本,监控远程的一台机器(ip为192.168.1.100)的存活状态,当发现宕机的时候发一份邮件给自己 [核心要点] ping -c10 192.168.1.100通过 ping 来判定对方是否在线 发邮件脚本:https://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D22Z/mail.py [脚本] #!/bin/bash n=`ping -c5 192.168.1.100 | grep 'pa…
[题目要求] 假设mysql密码是123456. 写脚本监控mysql服务是否正常,比如是否可以执行show processlist,并检测一下当前的mysql服务是主还是从.如果是从,请判断他的主从服务是否正常.如果是主,则不需要做什么 [核心要点] mysql -uroot -p123456 -e "show processlist" show slave status [脚本] #!/bin/bash mysql="/usr/local/mysql/bin/mysql…
[题目要求] 用shell打印下面这句话中字母数小于6的单词. Bash also interprets a number of multi-character options. [核心要点] for循环遍历所有单词 wc -L获取字符串长度 [脚本] #!/bin/bash c="Bash also interprets a number of multi-character options." n=`echo $c|awk -F '[ +-.]' '{print NF}'` ;i&…
[题目要求] 设计一个shell脚本用来备份数据库,首先在本地服务器上保存一份数据,然后再远程拷贝一份,本地保存一周的数据,远程保存一个月 假设我们知道mysql root账号的密码,要备份的库为data123,本地备份目录为/bak/mysql,远程服务器ip为192.168.1.100,远程提供了一个rsync同步服务 [核心要点] 备份数据库的命令 同步到远程服务器的命令 本地一周,可以用 date +%w做后缀,远程一个月可以用date +%d作为后缀 [脚本] #!/bin/bash…
[题目要求] 写一个脚本计算一下linux系统所有进程占用内存的大小的和 [核心要点] ps命令用法 for循环 加法运算 [脚本] #!/bin/bash for n in `ps aux | grep -v 'TIME COMMAND' | awk '{print $6}'` do sum=$[$sum+$n] done echo $sum…