python写入mysql数据库_Python实现SYSLOG服务器与MYSQL数据库写入源码

Python实现SYSLOG服务器与MYSQL数据库写入源码是初学python的同学练手代码,拙劣之处还请见谅。

文章中的python源码是依赖mysqldb模块,并适用于windows平台的python源码。

MySQLdb:Python MySQLPython标准的数据库接口的Python DB-API,包括Python操作MySQL,绝大多数Python数据库接口坚持这个标准。

import os,socket,sys,time,string

import MySQLdb

bufsize=1500

port=514

syslog_serverty={ 0:"emergency",

1:"alert",

2:"critical",

3:"error",

4:"warning",

5:"notice",

6:"info",

7:"debug"

}

syslog_facility={ 0:"kernel",

1:"user",

2:"mail",

3:"daemaon",

4:"auth",

5:"syslog",

6:"lpr",

7:"news",

8:"uucp",

9:"cron",

10:"authpriv",

11:"ftp",

12:"ntp",

13:"security",

14:"console",

15:"cron",

16:"local 0",

17:"local 1",

18:"local 2",

19:"local 3",

20:"local 4",

21:"local 5",

22:"local 6",

23:"local 7"

}

try:

sock=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)

sock.bind(("0.0.0.0",port))

except:

print("error bind")

sys.exit(1)

sql_em="insert into emergency values(%s,%s,%s,%s,%s,%s)"

sql_al="insert into alert values(%s,%s,%s,%s,%s,%s)"

sql_cr="insert into critical values(%s,%s,%s,%s,%s,%s)"

sql_er="insert into error values(%s,%s,%s,%s,%s,%s)"

sql_wa="insert into warning values(%s,%s,%s,%s,%s,%s)"

conn=MySQLdb.connect(host="127.0.0.1",db="syslog",port=18888,user="root",passwd="cinda")

curs=conn.cursor()

#f=file("syslog.txt","w")

print ("----------------syslog is start----------------\n")

#www.iplaypy.com

try:

while 1:

try:

data,addr=sock.recvfrom(bufsize)

#print data,addr

syslog=str(data)

n=syslog.find('>')

serverty=string.atoi(syslog[1:n])&0x0007

facility=(string.atoi(syslog[1:n])&0x03f8)>>3

syslog_msg=syslog[26:]

dev_name=syslog_msg[:syslog_msg.find(' ')]

dev_msg=syslog_msg[syslog_msg.find(' '):]

param=(time.strftime("%Y-%m-%d %H:%M:%S",time.localtime()),dev_name,addr[0],

syslog_facility[facility],syslog_serverty[serverty],dev_msg)

if serverty==0:

curs.execute(sql_em,param)

print syslog_msg

elif serverty==1:

curs.execute(sql_al,param)

print syslog_msg

elif serverty==2:

curs.execute(sql_cr,param)

print syslog_msg

elif serverty==3:

curs.execute(sql_er,param)

print syslog_msg

elif serverty==4:

curs.execute(sql_wa,param)

print syslog_msg

conn.commit()

#print dev_msg,time.strftime("%Y-%m-%d %H:%M:%S",time.localtime())

#print syslog_serverty[serverty],syslog_facility[facility],syslog[26:]

#f.writelines(syslog_serverty[serverty]+" "+syslog_facility[facility]+" "+syslog[26:]+'\n')

except socket.error:

pass

except KeyboardInterrupt:

curs.close()

conn.close()

print ("------------------syslogd stop-------------\n")

print "good bye"

sys.exit()

#f.close

玩蛇网文章,转载请注明出处和文章网址:https://www.iplaypy.com/code/scripts-shell/ss2525.html

相关文章 Recommend

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值