python var关键字_分析/var/log/message的python脚本

使用该程序分析/var/log/message中有error或者其他错误关键字。并在发现后搜集,发送邮件运维管理人员。

可以再定义一下辅助的函数,比如说获取服务器的ip地址。放在邮件内容中。一起发邮件。

#!/usr/bin/env/python

#coding:utf8

import commands

import os,sys

import datetime

import time

#import file_seekwork

import urllib,urllib2

import json

today=datetime.date.today()

MONTH={

'Jan':1,

'Feb':2,

'Mar':3,

'Apr':4,

'May':5,

'Jun':6,

'Jul':7,

'Aug':8,

'Sep':9,

'Oct':10,

'Nov':11,

'Dec':12

}

def parse_file():

pass

#获取文件修改时间

def get_state(file):

file_mtime=os.stat(file).st_mtime

return file_mtime

#查看/var/log/message 是否在10分钟之内修改过,如果修改过返回file。

def getenfile(file,nowtime):

if os.path.exists(file) and (nowtime-get_stat(file))/60 < 10:

return file

#

def parse_date(datestr):

year=today.year

month,day,yearandtime=datestr.split("/")

hour,minute,second = yearandtime.split(":")

return datetime.datetime(int(year),MONTH[month],int(day),int(hour),int(minute))

#获取10分钟的日志,并分析是否存在关键字nologmsg,如果有,便存入logmsg中。

def get_msg_result(time_minutes_ago,file,nologmsg):

with open(file) as fd:

y = fd.readlines()

logmsg=[]

logerrmsg=[]

for line in y:

splited_line=line.split()

datestr = '/'.join(splited_line[:3])

#print ("datestr qqqqqq: %s"%datestr)

try:

date_str=parse_date(datestr)

#print ("date_str: %s" %date_str)

except:

continue

#date = date_str.strftime("%s")

#print date_str,time_minutes_ago

if date_str >= time_minutes_ago:

logmsg.append(line)

else:

continue

for ten_minutes_line in logmsg:

for i in nologmsg:

if i not in line:

continue

else:

logerrmsg.append(ten_minutes_line)

if logerrmsg:

continue

#for errline in logerrmsg:

#    print errline

return logerrmsg

if __name__ == '__main__':

now = datetime.datetime.now()

#print now

d = datetime.timedelta(minutes=10)

#print d

time_minutes_ago=now - d

#print time_minutes_ago

keyword = ['error']

log_file= '/root/qh/qh_test.txt'

retrust= get_msg_result(time_minutes_ago,log_file,keyword)

print(112,retrust)

# 发邮件

receiver = 'xxx@xxx.xxx'

subject = '/var/log/messages error'

a=''.join(retrust)

print a

#print type(a)

#a="adfasdfasdfasdf"

#os.system ('/usr/bin/perl /root/qh/send_msg.pl -t' + receiver  + '-s' + subject + '-c' + 'test_qh')

commands.getoutput('/usr/bin/perl /root/qh/send_msg.pl -t %s -s "%s" -c "%s" '%(receiver,subject,a))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值