Shellscript监视日志文件(如果关键字触发),然后运行snmptrap命令

时间:2018-11-02 19:15:51

标签: linux bash shell rhel snmp-trap

是否可以使用shell script来监视日志文件,例如 tail -f /var/log/errorlog.txt,然后如果出现类似down的关键字,则向SNMPTRAP生成snmp manager并继续监视

我有一个SNMP脚本可用于生成SNMPTrap,看起来像

snmptrap -v v2c -c community host "Error message"

让脚本名称为snmp.sh

我的问题是如何执行以下操作

  1. 记录日志
  2. 如果关键字[down]匹配,则使用snmp.sh脚本发送警报
  3. 其他请假

根据我尝试的建议

tail -F  /data/log/test.log |

egrep -io 'got signal 15 | now exiting' | 

while read -r line ;
do

    case "$line" in
       "got signal 15")
        echo "hi"
            ;;
        "now exiting")
        echo "hi2"
             ;;
        *)


    esac
done

但是问题是尾部在这里不适合case语句,只要新的日志详细信息添加到了case语句中并回显输出

如果我使用cat / less / more

,我可以得到输出。

您能告诉我我在这里犯了什么错误吗?

预先感谢

2 个答案:

答案 0 :(得分:0)

这听起来像是您想要的模式:

google.analytics('v3').data.ga.get({
    auth: jwtClient,
    ids: 'ga:xxxxxxxx',
    'start-date': '30daysAgo',
    'end-date': 'today',
    'metrics': 'ga:pageviews'
}).then((err, result) => {
    // error object here contains a 401
    if(err) return console.log(err);
    console.log(result);
});

答案 1 :(得分:0)

尝试

tail -f /var/log/errorlog.txt | grep "down" | while read line; do snmp.sh; done