python脚本之将mysql数据转发给第三方udp网络端口

python脚本之将mysql数据转发给第三方udp网络端口

原文地址:https://program-park.github.io/2021/03/12/python_2/

前言

最近客户要把所有安全厂商的系统日志统一收录监管,我们的系统日志存放在mysql中,所以得写个脚本取数据发送到他们的网络端口

代码实现

大体思路为取前五分钟的数据发送到第三方udp端口,每五分钟发送一次,代码如下:

import pymysql,socket,time

# 建立数据库的连接信息
host = "10.7.2.20"  # 数据库的ip地址
user = "root"  # 数据库的账号
password = "123456"  # 数据库的密码
port = 3306  # mysql数据库通用端口号
OUTPUTIP = "192.168.44.111" #目的ip
OUTPUTPORT = 6666    #目的端口

#创建套接字
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

def main():

    mysql = pymysql.connect(host=host, user=user, password=password, port=port)

    #新建查询页面
    cursor = mysql.cursor()

    #sql
    sql =  'select * from rs_datainsight.rs_admin_log where from_unixtime(createtime,\'%Y-%m-%d %H:%i:%s\') between date_format(date_add(now(), interval - 5 minute),\'%Y-%m-%d %H:%i:%s\') and date_format(now(),\'%Y-%m-%d %H:%i:%s\')'

    #执行sql
    cursor.execute(sql)

    #返回结果
    # result = cursor.fetchone() #返回单条数据
    results = cursor.fetchall() #返回多条数据

    for result in results:
        #print(result)
        #发送到第三方端口
        s.sendto(str(result).encode("utf-8"),(OUTPUTIP,OUTPUTPORT))

    #关闭查询
    cursor.close()

    #关闭数据库
    mysql.close()

if __name__ == "__main__":
    while True:
        main()
        time.sleep(300)     #睡眠五分钟
    s.close()

代码比较简单,就不多做叙述了,同时将脚本加入到任务执行计划里

*/5 * * * * /data/python3/bin/python3 /data/mysql2udp.py

每五分钟执行一次,保证脚本因为外界因素挂掉之后能够重启


有不同意见或者觉得代码有可优化地方的小伙伴可以在下方j进行留言评论~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大Null

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值