Linux 重启apache服务器shell

    xiaoxiao2022-07-03  121

    最近在自学Linux,其中学到shell中if语法的时候碰到一个小案例。服务器在线上跑的时候,其中apache进程一般是开启的,但也有意外的情况发生,此时可能导致apache进程的崩溃,此时研发人员可能已经下班休息了,这是需要写一个脚本判断apache服务进程的状态,并将这些状态记录到日志里面,以供后面程序员查问题。可以配置一个服务,让这个脚本每隔一段时间跑一次。

    首先安装一下apache服务

    yum -y install httpd

    查看一下带httpd的进程

    ps aux | grep 'httpd'

    此时由于没有开启apache,没有apache相关的进程,只有刚刚管道过滤的进程

    开启apache

    service httpd start

    再使用ps aux | grep 'httpd' 查询

    可以查到apache相关的服务

    可以用nmap查询httpd端口的开启情况

    首先安装namp

    yum -y install nmap nmap -sT 172.20.10.13

     

    此时为开启

    我们所要做的就是用程序去获得这个状态,然后根据这个状态是否开启去执行不同的操作,具体代码如下:

    #!/bin/bash #获得httpd 80端口的状态 open为开启 closed为关闭 port=$(nmap -sT 172.20.10.13 | grep tcp | grep http | awk '{print $2}') if [ "$port" == "open" ] then #如果正常开启 则记录到httpd_acc.log日志里面 echo "$(date) httpd is ok!!!" >> /tmp/httpd_acc.log else #如果未正常开启 则重启apache进程 并记录到httpd_err.log日志里面 /etc/rc.d/init.d/httpd restart &>/dev/null echo "$(date) httpd is reboot!!!" >> /tmp/httpd_err.log fi

     

    最新回复(0)