python 将nginx日志写得mysql

ppylox
·8/13/2021·0 阅读
AI 摘要模型根据正文自动生成,仅供参考

该脚本使用Python的pymysql库将Nginx访问日志写入MySQL数据库。通过连接本地nginxlog库,逐行读取日志文件并按空格分割,提取IP、时间、请求方法、资源路径、协议和状态码等字段。时间字段经字符串替换和datetime.strptime格式化为标准时间格式。使用参数化SQL插入语句将各字段写入nginxlog表,每行提交一次,最后关闭数据库连接。

#/usr/bin/env python

#-*-coding:UTF-8 -*-

from  datetime \nimport  datetime

import   pymysql

connect=pymysql.connect(

   host='127.0.0.1',

   port=3306,

   user='root',

   password='',

   database='nginxlog',

   charset="utf8"

 

)

cur =\nconnect.cursor()

sql= "insert\ninto nginxlog(ip,time,methods,source,protocol,status)\nvalues(%s,%s,%s,%s,%s,%s)"

 

with\nopen("D:/tools/nginx-1.17.9/logs\\host.access.log","r")  as \nngfile:

   for line in ngfile:

      _nodes = line.split()

      IP= _nodes[0]

      Time=\n_nodes[3][1:-1].replace(":"," ",1) #将时间转换为17/Jun/2017 12:43:4格式

      Time =\ndatetime.strptime(Time,"%d/%b/%Y %H:%M:%S")#将时间格式化为2017-06-17 12:43:04

      Methods = _nodes[5][1:]

      Source = _nodes[6]

      Protocol = _nodes[7][:-1]

      Status = _nodes[8]

     \nprint(IP,Time,Methods,Source,Protocol,Status)

     \ncur.execute(sql,(IP,Time,Methods,Source,Protocol,Status))

      connect.commit()

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n

   connect.close()

相关文章

评论 (0)

暂无评论,来写第一条吧