如果关键字触发则监视日志文件的 Shell 脚本 运行 snmptrap 命令
Shellscript to monitor a log file if keyword triggers then run the snmptrap command
有没有办法使用 shell script
来监控日志文件,比如
tail -f /var/log/errorlog.txt
然后如果出现down
关键字,则生成SNMPTRAP
到snmp manager
并继续监控
我有一个 SNMP
脚本可用于生成 SNMPTrap
它看起来像
snmptrap -v v2c -c community host "Error message"
假设脚本名称是 snmp.sh
我的问题是如何执行下面的操作
- 跟踪日志
- 如果关键字[down]匹配则使用snmp.sh脚本发送警报
- 否则离开
按照建议我尝试了这个
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
但问题是 tail 在这里无法使用 case 语句,每当新的日志详细信息添加到 case 语句并回显输出时
如果我使用cat/less/more
我可以获得输出
有人能告诉我我在这里犯了什么错误吗?
提前致谢
听起来你想要的模式是这样的:
tail -f /var/log/errorlog.txt | grep -e down -e unmounted | while read -r line
do
case "$line" in
down)
./snmp.sh …
;;
unmounted)
./snmp.sh …
;;
*)
echo "Unhandled keyword ${line}" >&2
exit 1
esac
done
尝试
tail -f /var/log/errorlog.txt | grep "down" | while read line; do snmp.sh; done
有没有办法使用 shell script
来监控日志文件,比如
tail -f /var/log/errorlog.txt
然后如果出现down
关键字,则生成SNMPTRAP
到snmp manager
并继续监控
我有一个 SNMP
脚本可用于生成 SNMPTrap
它看起来像
snmptrap -v v2c -c community host "Error message"
假设脚本名称是 snmp.sh
我的问题是如何执行下面的操作
- 跟踪日志
- 如果关键字[down]匹配则使用snmp.sh脚本发送警报
- 否则离开
按照建议我尝试了这个
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
但问题是 tail 在这里无法使用 case 语句,每当新的日志详细信息添加到 case 语句并回显输出时
如果我使用cat/less/more
我可以获得输出有人能告诉我我在这里犯了什么错误吗?
提前致谢
听起来你想要的模式是这样的:
tail -f /var/log/errorlog.txt | grep -e down -e unmounted | while read -r line
do
case "$line" in
down)
./snmp.sh …
;;
unmounted)
./snmp.sh …
;;
*)
echo "Unhandled keyword ${line}" >&2
exit 1
esac
done
尝试
tail -f /var/log/errorlog.txt | grep "down" | while read line; do snmp.sh; done