2016-11-21 92 views
0

我创建了一个bro脚本,目标是从pcap文件中提取所有可用协议的所有文件。但我不想写所有的日志。 Bro为每个协议创建一个日志文件。例如:'http.log','smtp.log'等,甚至生成'weird.log'。我的pcap文件很大(20GB),所以每个日志文件包含超过30MB的信息。此日志生成降低了文件提取的性能。 我可以禁用'conn.log'行Log::disable_stream(Conn::LOG)但是,那么所有的协议日志? 这是我的脚本Bro:禁用所有日志生成

@load base/files/extract 

event bro_init() 
    { 
     Log::disable_stream(Conn::LOG); 

    } 

event file_sniff(f: fa_file, meta: fa_metadata) 
    { 
    local ext = ""; 

    if (meta?$mime_type) 
     ext = split_string(meta$mime_type, /\//)[1]; 
    local fname = fmt("%s-%s.%s", f$source, f$id, ext); 
    Files::add_analyzer(f, Files::ANALYZER_EXTRACT, [$extract_filename=fname]); 
    } 
+1

在*裸*模式下运行Bro是否有帮助?也就是说,尝试在命令行上传递'-b'。 – mavam

+0

该文档说:裸模式只加载最小数量的脚本以保持可操作性,并将所需脚本加载到正在运行的脚本中。当我用这个params运行bro时,它什么都不做。即使是事件file_sniff的第一行中的打印呼叫。这是什么意思? –

+0

裸鼻不加载任何脚本。如果您需要提取文件,那么您必须通过在命令行上传递文件来手动执行此操作。 – mavam

回答

0

可以使用none作家是这样的:

bro -r packets.pcap Log::default_writer=Log::WRITER_NONE 

我不完全相信,写这些日志是虽然伤害任何真实的方式你的表现。通常,将文件写入磁盘是造成最大开销的原因。