使用 python 监控日志文件

Monitoring a log file using python

我需要监控安装在多台服务器上的服务。如果服务是 运行,它每 5 分钟修改一次日志文件,但如果服务关闭,则日志没有变化 file.I 需要知道是否可以在 python 中实现脚本监控日志文件并触发电子邮件或事件,以防日志文件超过 10 分钟没有变化。 我是 python 的新手,仍处于学习阶段。

是的。您可以使用 sched module, or even just time.sleep for the delay, and the smtplib and email 模块发送电子邮件。

您可以检查文件的修改时间是否早于 10 分钟。如果是,请发送电子邮件或做其他事情提醒自己。

修改时间以秒为单位。将 (10 * 60) 中的 10 更改为您需要的任何分钟数。

time.time() returns 纪元时间(自 1/1/1970 以来的秒数)。

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'