以下是一个简单的 Shell 脚本,用于检查 Apache2 是否正常运行。如果检测到服务未运行或无法访问,它会尝试重新启动服务并发送通知。
脚本内容
#!/bin/bash
# 配置相关变量
APACHE_SERVICE="apache2"
APACHE_URL="http://localhost"
LOG_FILE="/var/log/apache2_status_check.log"
EMAIL="your_email@example.com" # 可选,用于发送通知
# 检查 Apache 服务状态
check_apache_service() {
systemctl is-active --quiet $APACHE_SERVICE
if [ $? -eq 0 ]; then
echo "$(date) - Apache2 服务正在运行。" >> $LOG_FILE
return 0
else
echo "$(date) - Apache2 服务未运行,尝试重启..." >> $LOG_FILE
restart_apache
return 1
fi
}
# 检查 Apache 是否可访问
check_apache_response() {
RESPONSE=$(curl -o /dev/null -s -w "%{http_code}" $APACHE_URL)
if [ "$RESPONSE" == "200" ]; then
echo "$(date) - Apache2 可访问,返回代码: $RESPONSE。" >> $LOG_FILE
return 0
else
echo "$(date) - Apache2 无法访问,返回代码: $RESPONSE,尝试重启..." >> $LOG_FILE
restart_apache
return 1
fi
}
# 重启 Apache
restart_apache() {
systemctl restart $APACHE_SERVICE
if [ $? -eq 0 ]; then
echo "$(date) - Apache2 重启成功。" >> $LOG_FILE
# 可选:发送邮件通知
echo "Apache2 服务重启成功。" | mail -s "Apache2 服务已重启" $EMAIL
else
echo "$(date) - Apache2 重启失败,请手动检查。" >> $LOG_FILE
# 可选:发送邮件通知
echo "Apache2 服务重启失败,请立即检查服务器!" | mail -s "Apache2 服务重启失败" $EMAIL
fi
}
# 主逻辑
main() {
check_apache_service
if [ $? -eq 0 ]; then
check_apache_response
fi
}
# 执行脚本
main脚本说明
变量配置:
APACHE_SERVICE:服务名称,根据实际情况调整。APACHE_URL:访问的 Apache URL,例如http://localhost或具体的域名/IP 地址。LOG_FILE:日志文件路径,用于记录运行结果。EMAIL:可选,如果需要邮件通知,请安装mail工具并配置。功能:
检查 Apache 服务是否正常运行。
检查 Apache 是否可通过 HTTP 响应访问。
如果服务未运行或无法访问,自动尝试重启,并记录日志或发送通知。
依赖:
确保
curl和mail已安装:
sudo apt install curl mailutils
使用方法
保存脚本:将上述代码保存为
check_apache.sh。赋予执行权限:
chmod +x check_apache.sh
手动运行:
./check_apache.sh
设置定时任务(可选):如果需要定期运行此脚本,可以添加到
cron:crontab -e
添加以下内容,每 5 分钟检查一次:
*/5 * * * * /path/to/check_apache.sh
通过此脚本,可以实现对 Apache 的自动化监控和处理,减少手动检查的工作量。
最后
以上就是名字长了才好记最近收集整理的关于用一个shell脚本检查apache2是否正常的全部内容,更多相关用一个shell脚本检查apache2是否正常内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复