进程监控脚本bash,如何添加以下等待时间,间隔和日志功能

进程监控脚本bash,如何添加以下等待时间,间隔和日志功能

我正在使用下面的脚本来监视 Linux 上的某些进程,如果进程关闭则重新启动并发送电子邮件。

我想在这个脚本中添加以下改进,在这种情况下我需要帮助。有人能帮忙举个例子吗

  • 尝试重启服务之间等待的秒数
  • 放弃前的尝试次数
  • 检查间隔(秒)
  • 在发生事件时生成日志。

当前脚本:

###edit the following
export smtp=smtprelay.domainname.com:25
service=splunk
[email protected]
###You can provide multiple mail ID's above in email variable separated by commas
###stop editing

host=`hostname -f`
if (( $(ps -ef | grep -v grep | grep $service | wc -l) > 2 ))
then
echo "$service is running"
else
/opt/splunk/bin/$service restart
if (( $(ps -ef | grep -v grep | grep $service | wc -l) > 2 ))
then
subject="$service at $host has been started"
echo "$service at $host wasn't running and has been started" | mailx -s "$subject" $email
else
subject="$service at $host is not running"
echo "$service at $host is stopped and cannot be started!!!" | mailx -s "$subject" $email
fi
fi

答案1

  1. 您需要几个变量用于尝试计数器和超时。
  2. 将这些值写入/etc/sysconfig/目录中的某个文件(/etc/default/在其他发行版中)并将其包含到您的脚本中。
  3. 用于sleep等待超时。
  4. 使用logger实用程序将数据写入系统日志。
  5. 最复杂的部分是启动服务,如果超时则中止启动。最好使用daemon()函数(start-stop-daemon其他发行版中的实用程序)。

相关内容