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