在工作中遇到了客户ubuntu服务器中某个服务,可能是环境原因有时会自动关闭。此服务器没有公网,所以不能通过远程连接。这个简单的脚本内容就是监测到服务关闭后,会自动启动,并将启动时间记录在文档中,如果启动失败则将错误日志记录到文档中。代码如下:
我们这里以apache为例
定好变量之后
首先判断服务的文件夹是否存在,如果不存在则创建,如果存在则跳过
判断服务进程是否在运行,如果运行则在 \ $logpath 中记录normal
如果服务进程为0,则重新启动服务,并在 \ $logpath 中记录restart succeed
如果重新启动失败,则将 journalctl -xe 错误日志,记录在 \ $failpath 中
[14:40:12 root@ubuntu ~]$ cat servicemonitor.sh
#/bin/bash
#
#***********************************************************************
#Author:chacha
#QQ:1415320214
#Date:2021-08-11
#FileName:servicemonitor.sh
#Blog:https://blog.csdn.net/u014578909?spm=1010.2135.3001.5343
#CSDN NAME ID:u014578909
#Copyright (C):2021 All rights reserved
#**********************************************************************
source /etc/profile
svrname="apache2"
filepath="/data/apache2-log"
time1="`date +%Y-%m`"
time2="`date +%F-%T`"
time3="`date +%Y-%m-%d`"
svrpath="/usr/sbin/apache2"
logpath="$filepath/`echo $time1`-serverlog"
failogpath="$filepath/$time3-serverlog*"
process1=`ps -ef |grep apache2|grep -v grep|grep "$svrpath"|awk '{print $2}'|wc -l`
[ ! -d "$filepath" ] && mkdir "$filepath" || echo 'File already exists!' >> /dev/null
<