读取日志文件,如果发生错误重启服务
Reading log file and if error occurs restart service
我正在尝试创建一个脚本来监视日志文件,如果出现错误,它会发送一封电子邮件 python。该脚本有效,但一旦检测到错误,它就会开始发送垃圾邮件。有没有办法避免这种情况?
# cat /usr/local/bin/monitor.bash
#!/bin/bash
tail -fn0 /var/log/syslog | while read line ; do
echo "${line}" | grep -i "error" > /dev/null
if [ $? = 0 ] ; then
python emailsend.py
fi
done
提前致谢!
编辑:我打算将此 运行 用作持续监控日志的服务。一旦它检测到错误,我希望它发送一次电子邮件,然后它会重新启动一些服务(尚未将其添加到脚本中)并继续监视文件直到它轮换。我希望这可以缩小范围。
如果我的代码逻辑正确,您可以在日志中加入一些行以防止进入 if
子句并重新启动服务。
# cat /usr/local/bin/monitor.bash
#!/bin/bash
tail -fn0 /var/log/syslog | while read line ; do
echo "${line}" | grep -i "error" > /dev/null
if [ $? = 0 ] ; then
python emailsend.py
# append line to the log to prevent grepping of 'error'
echo 'dummy line' >> /var/log/syslog
# restart your services here
fi
done
希望对您有所帮助。
我正在尝试创建一个脚本来监视日志文件,如果出现错误,它会发送一封电子邮件 python。该脚本有效,但一旦检测到错误,它就会开始发送垃圾邮件。有没有办法避免这种情况?
# cat /usr/local/bin/monitor.bash
#!/bin/bash
tail -fn0 /var/log/syslog | while read line ; do
echo "${line}" | grep -i "error" > /dev/null
if [ $? = 0 ] ; then
python emailsend.py
fi
done
提前致谢!
编辑:我打算将此 运行 用作持续监控日志的服务。一旦它检测到错误,我希望它发送一次电子邮件,然后它会重新启动一些服务(尚未将其添加到脚本中)并继续监视文件直到它轮换。我希望这可以缩小范围。
如果我的代码逻辑正确,您可以在日志中加入一些行以防止进入 if
子句并重新启动服务。
# cat /usr/local/bin/monitor.bash
#!/bin/bash
tail -fn0 /var/log/syslog | while read line ; do
echo "${line}" | grep -i "error" > /dev/null
if [ $? = 0 ] ; then
python emailsend.py
# append line to the log to prevent grepping of 'error'
echo 'dummy line' >> /var/log/syslog
# restart your services here
fi
done
希望对您有所帮助。