我需要监控安装在多个服务器上的服务。如果服务正在运行,它每隔5分钟修改一次日志文件,但如果它是down,则日志文件没有变化。我需要知道是否可以在python中实现一个监视日志文件并触发电子邮件或事件的脚本如果日志文件没有变化超过10分钟。 我是python的新手,还处于学习阶段。
答案 0 :(得分:0)
是。您可以使用sched
模块,甚至仅使用time.sleep
延迟,以及smtplib
和email
模块发送电子邮件。
答案 1 :(得分:0)
您可以查看文件的修改时间是否超过10分钟。如果是,请发送电子邮件或做其他事情以提醒自己。
修改时间以秒为单位。将(10 * 60)中的10改为你需要的任何分钟数。
time.time()
返回纪元时间(自1970年1月1日以来的秒数)。
import os.path, time
import smtplib
if (time.time() - os.path.getmtime('/path/to/file.log') > (10 * 60)):
try:
smtpObj = smtplib.SMTP('localhost')
smtpObj.sendmail('from_me@somewhere.com', 'to_bajiboo@elsewhere.com', 'My log file has not been updated for a while')
except SMTPException:
print 'Error: unable to send email'