【发布时间】:2018-04-26 13:09:22
【问题描述】:
我想运行一个脚本来检查我的网络接口是否启动/关闭。如果它启动,它会发送一个 SNMP Trap,如果它关闭,它会发送另一个。
ip a ||
while read LINE; do
if [[ $LINE == *"2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000"* ]]; then
TRAP 1
else
TRAP 2
你有什么建议吗?
【问题讨论】:
-
您可以检查您的界面是否正在运行: if [ -d /sys/class/net/
];然后 ;否则 ; fi 您可以使用 while 循环和 sleep 命令每秒检查一次新的状态界面。 -
SNMP 陷阱被发送到我的监控服务器,所以我需要使用它们。
-
好的,我明白了。我认为您可以在“while”循环中解析变量“LINE”,搜索子字符串“state UP”并根据它进行操作。例如这样做: IS_UP=$(echo $LINE | grep "state UP") 然后检查 "IS_UP" 变量。我在下面写一个答案以提供更多详细信息
-
问题是如果down了,trap就不会发送了。您只能将其记录下来,或者将这些陷阱排队等待稍后发送。