脚本通过警报日志文件的行迭代并执行一些代码行,如果警报处于活动状态超过一天



我想创建一个脚本以循环通过警报日志文件循环,提取特定字段,然后将结果保存在另一个外部文件中。然后,提取的信息将用于执行其他命令。

这是日志文件的示例,所需的O/P:

-2632-3-698;

2016-11-01 07:10:51 GST; 2016-11-01 07:10:51 GST; FARSMANAGER:network@er_ao_ao_l_4283_abcd@enbequip@enbinst@enbinst@enbinst@enbinst@x2grpp-0-2632-3-698;

2016-11-01 07:10:51 GST; 2016-11-01 07:10:51 GST; FARSMANAGER:network@er_ao_ao_l_4283_abcd@enbequip@enbinst@enbinst@enbinst@enbinst@x2grpp-0-2632-3-698;

-2632-3-698; -2632-3-698;

2016-11-03 10:00:08 GST; 2016-11-03 10:00:08 GST; FARDMANAGER:network@et_ao_l_0193_abcd@enbinst@enbinst@enbinst@enbinst@enbinst@x2grp-0-2632-3-698;

对于每行,它应该检查警报是否处于活动状态超过一天(与当前日期相比),如果条件为真,请提取名称(例如ET_AO_L_L_0165_ABCD)并将其引导到外部文件。

预期O/P(删除重复项):

et_ao_l_0165_abcd

er_ao_l_4283_abcd

et_ao_l_0166_abcd

et_ao_l_0193_abcd

预先感谢

您可以编写一个小脚本来实现此目的。

declare -a array=( $(sed -E 's/^.*faultManager:network@([^@]*)@.*$/1/' /path/to/log/file ) )
declare -A temp # declaring an associative array ! important.
for elem in "${array[@]}"
do
 temp[$elem]=1 # Array keys can't be duplicated, this is the catch here
done
for index in "${!temp[@]}" # Taking the indexes which is our required values
do
 echo $index >>/path/to/result/file #appending the values to a file.
done

相关内容

最新更新