为了可以检测到哪个网口 up/down。
这里使用 python 来 调用 ip monitor link
来实现 网口 up/down 状态的观测。
观察其中的输出:
- 如果有 LOWER_UP,就是 link up。
- 如果没有 LOWER_UP,就是 link down。
#!/usr/bin/python
# -*- coding:utf-8 -*-
from subprocess import *
import traceback
from threading import *
import time
import re
class net_link_event():
def __init__(self
, timestamp
, link_id
, link_name
, is_link_up
):
self.timestamp = timestamp
self.link_id = link_id
self.link_name = link_name
self.is_link_up = is_link_up
def to_string(self):
return "{timestamp: %d, link_id: %s, link_name: %s, is_link_up: %s}" % (self.timestamp
, self.link_id
, self.link_name
, self.is_link_up
)
'''
case:
# link down
16: vEth0: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN
2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN
# link up
16: vEth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN
^^^^^^^^ link up
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP
^^^^^^^^ link up
'''
class net_link_monitor()