shell 在Zeek(例如main.zeek)中,我如何使用来自另一个脚本(例如sh文件)的变量和packet_source()或任何函数?

vdgimpew  于 2023-01-21  发布在  Shell
关注(0)|答案(1)|浏览(128)

我在.sh文件中的命令正在运行。
命令为:($ZEEK -C -r $i目录

i:要处理的 *pcap(文件)名称 *
目录:要解压缩的 * 目录 *

当命令运行时,在所需的位置有提取文件。它工作得很好。* 但我需要在main.zeek* 中的文件名。问题是,我如何才能访问main.zeek中的文件名(在.sh文件中使用)。
从这里我了解到,packet_source()函数可以在脚本中调用,但我不能实现它,因为我刚刚开始使用它,我试图适应Zeek的脚本。
在我的脚本(main.zeek)中,加载包含packet_source()作为内置函数的脚本索引(@load base/bif/zeek.bif.zeek)后,我如何定义并使用变量(e.g global filename: function packet_source():,它是否有效)?
如果你能帮忙我会很高兴的。

irlmq6kh

irlmq6kh1#

main.zeek中,变量可以定义为global,以便在脚本具有的每个函数中使用。
全局文件名_s:细绳;
然后用packet_source()来取值,用它的$path值,从PCAP读入哪个文件就可以得到,应该放在event zeek_init()中。

event zeek_init()
{
local filename_source = packet_source();  
filename_s = filename_source$path;
}

filename_s包含Zeek读取的文件的目录。它可以在该脚本文件中使用(例如main.zeek)。

相关问题