[kiosk@foundation61 Desktop]$ mv pp.sh httpd.sh
#!/bin/bash
#Date: 2018-12-27
#Author: Zhang Yongjie
#Connect: 928357011@qq.com
#Desc: This script used to monitor the APACHE scripts
#Version: 1.0
ROOT_UID=0
if [ "$UID" -ne "$ROOT_UID" ];then
echo "Error:you should be root to run this script!"
exit 1
fi
systemctl start httpd &>>/dev/null
if [ $? == 0 ];then
while true
do
echo -e "
\033[31m start 启动httpd服务 \033[0m
\033[32m stop 停止httpd服务 \033[0m
\033[33m restart 重启httpd服务 \033[0m
\033[34m status 检查httpd服务 \033[0m
\033[35m exit 退出执行程序 \033[0m
"
read -p "请输入一个您的指令:" a
case $a in
start|START)
systemctl start httpd && echo "httpd启动成功" || echo "httpd启动失败"
;;
stop|STOP)
systemctl stop httpd && echo "httpd停止成功" || echo "httpd停止失败"
;;
restart|RESTART)
systemctl restart httpd && echo "httpd重启成功" || echo "httpd重启失败"
;;
status|STATUS)
systemctl status httpd && echo -e `systemctl status httpd`
;;
exit|EXIT)
exit 0
;;
esac
done
fi
echo "没有安装httpd服务"
while true
do
echo -e "
\033[31m install 安装Apache服务 \033[0m
\033[32m exit 退出执行程序 \033[0m
"
read -p "请输入一个您的指令:" o
case $o in
install|INSTALL)
yum install httpd -y &> /dev/null && echo "安装成功,请重新启动程序" || echo "您的yum源有问题"
;;
exit|EXIT)
exit 0
;;
esac
done
自动监控apache服务状态并重启的shell脚本
#!/bin/sh
curdate=`date +"%Y-%m-%d %H:%M:%S"`
#echo $curdate" exit " >> /home/opp/mon.log 2>&1 &
#exit
#statistik forum.php
num=`ps -ef|grep "/opp/apache/bin/httpd"|grep -v grep|wc -l`
#statistik www.123456.com/index.php
num2=`ps -ef|grep "/opt/lampp/bin/httpd" | grep -v grep |wc -l`
#echo $num;
#echo $curdate;
#num3=`netstat -anopt | grep 8080 | wc -l`
#echo $num3
if [ ${num} -lt 1 ] ;then
echo $curdate >> /home/opp/mon.log 2>&1 &
/opp/apache/bin/httpd -k start >> /home/opp/mon.log 2>&1 &
else
echo "apache/httpd is running "$curdate >> /home/opp/mon.log 2>&1 &
fi
if [ ${num} -gt 700 ] ;then
echo $curdate"this timestamp is index full" >> /home/opp/mon.log 2>&1 &
/opp/apache/bin/httpd -k stop
sleep 3
/opp/apache/bin/httpd -k start >> /home/opp/mon.log 2>&1 &
else
echo "apache/httpd is running "$curdate >> /home/opp/mon.log 2>&1 &
fi
if [ ${num2} -lt 2 ] ;then
echo $curdate >> /home/opp/mon.log 2>&1 &
killall -9 /opt/lampp/bin/httpd
/opt/lampp/lampp start >> /home/opp/mon.log 2>&1 &
else
echo "opt/httpd is running "$curdate >> /home/opp/mon.log 2>&1 &
fi
if [ ${num2} -gt 450 ] ;then
echo $curdate" this timestamp is for the forum's conection full" >> /home/opp/mon.log 2>&1 &
killall -9 /opt/lampp/bin/httpd
sleep 3
/opt/lampp/lampp start >> /home/opp/mon.log 2 >&1 &
else
echo "opt/httpd is running "$curdate >> /home/opp/mon.log 2>&1 &
fi
目的:
1.监控apache服务器的状态
2.当发现apache down机就自动重启apache服务
3.重启apache不成功,杀死该进程。并重新启动
4.记录日志