самый быстрый способ получить информацию о носителе порта Ethernet, когда порт недоступен - PullRequest
0 голосов
/ 19 мая 2018

У меня более десяти портов Ethernet (без беспроводного подключения и т. Д.).Когда порт административно отключен, какой самый быстрый способ найти, если у порта есть носитель?

Просто для демонстрации, у меня порт eth3 административно отключени имеет перевозчика (физическая ссылка).У меня есть рабочий код ниже.Как бы то ни было, когда я удаляю 5-секундную задержку, я не получаю несущей (хотя действительно есть несущая).

#!/usr/bin/env python3.4

import subprocess
import time

def func():
    try:
        with open("/sys/class/net/eth3/carrier") as cf1:
            carrier = cf1.read().strip()
    except Exception as e:
        cmd = "ip link set dev eth3 up"
        result = subprocess.check_output(cmd, stderr=subprocess.STDOUT, shell=True, universal_newlines=True)
        time.sleep(5)
        with open("/sys/class/net/eth3/carrier") as cf1:
            carrier = cf1.read().strip()
        cmd = "ip link set dev eth3 down"
        result = subprocess.check_output(cmd, stderr=subprocess.STDOUT, shell=True, universal_newlines=True)
    return carrier

c = func()
print("eth3 carrier: {0}".format(c))
...