Linux 重启apache服务器shell

博主自学Linux时,在shell的if语法学习中遇到判断apache服务进程状态的案例。当apache进程崩溃,需写脚本判断其状态并记录到日志。还介绍了安装apache服务、查询进程、用nmap查询端口开启情况等操作,最后表示要根据状态执行不同操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在自学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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值