suricate规则更新脚本

前提

因为工作需要,需要从规则库中去更新最新的规则内容

思路
将新的规则文件去和老的规则文件做对比,将新的规则内容不在老的规则文件里面视为这个是需要更新添加的规则。

脚本

# -*- coding:utf-8 -*-

#更新所有规则的文件,将所有的规则合并后通过新的规则文件和老的规则文件对比,将新规则文件中不在老规则的文件内容提取出来。
import re 
import os



oldrule = [] #老的规则
newrule =[] #新的规则
uprules =[]
oldlj = [] #老的路径
newlj = [] #新的路径


def oldrules(oldrules):
    with open(oldrules,'r',encoding='utf-8')as fa:
        for old in fa.readlines():
            if "alert" in old:
                oldrule.append(old)
                
def newrules(newrules):
    with open(newrules,'r',encoding='utf-8')as fb:
        for new in fb.readlines():
            if "alert" in new:
                newrule.append(new)
                
def walfFile(file,name):
    for root,dirs,files in os.walk(file):
        for f in files:
            allfile = os.path.join(root,f)
            name.append(allfile)
            
            

oldru = "/home/oldrules" #老的规则文件路径
newru = "/home/updaterules" #新的规则文件路径
walfFile(oldru,oldlj)
walfFile(newru,newlj)
for oldi in oldlj:
    oldrules(oldi)
    
for newi in newlj:
    newrules(newi)

sum = 0
for i in newrule:
    if i not in oldrule:
        print(i)
        sum += 1
        with open("20210514.rules",'a',encoding='utf-8')as ff:
            ff.write(i)

print("总共更新了{0}规则".format(sum))

效果
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值