Обеспечение Ethernet настроено прежде, чем продолжить init сценарии

Существует ли лучший способ гарантировать, что порт Ethernet настроен прежде, чем продолжить посредством запуска init сценарии? Когда 802.3ad связался, Ethernet настроен на Ubuntu, он занимает время, прежде чем он закончит согласование протокола и запустит передающие пакеты, потому что сетевой сценарий просто настраивает, но не проверяет, что трафик передается. В результате это может отбросить некоторые из других сетевых зависимых сценариев, как init для drbd. Прямо сейчас у меня просто есть цикл, который проверяет с помощью ping-запросов шлюз в сценарии запуска, но это кажется менее, чем оптимальным:

GATEWAYIP=10.0.0.1
while ( ! ping -c 1 $GATEWAYIP  ); do
   echo gateway not up
done
3
задан 27 June 2011 в 23:03

1 ответ

Это - довольно определенный вариант использования, который Вы имеете с DRBD в строке после сетей. Поскольку у меня нет большого опыта DRBD, я не уверен, как быстро он попытается установить. Возможно, Вы могли обойтись простым обнаружением, когда IP связывается с интерфейсом вместо того, чтобы ожидать, пока ping не отвечает (который добавляет что задержка к соединению).

Возможно, что-то как;

#!/bin/bash
# Fetch Interface
BONDED_INTERFACE=$(cat /proc/net/dev | grep 'bon' | awk -F: '{print $1}')

# Determine Network Status
if [ "$BONDED_INTERFACE" ]; then
    BONDED_IP=$(/sbin/ifconfig ${BONDED_INTERFACE} | sed -n  -e '/Bcast/p' | cut -d : -f 2 | awk '{print $1}')
    while [ "${#BONDED_IP}" -le "0" ]; do
        echo "No IP Present on The Interface";
        BONDED_IP=$(/sbin/ifconfig ${BONDED_INTERFACE} | sed -n  -e '/Bcast/p' | cut -d : -f 2 | awk '{print $1}')
    done
    echo "The Interface IP is: $BONDED_IP";
else
    echo "No Bonded Interface Found";
fi

Я предполагаю за пределами отладки вышеупомянутого сценария, имел бы больше смысла, называя сон какое-то время продолжительностью скорее затем повторение, это производится.

Если это все еще не вполне, что Вы хотите, возможно, существует что-то, чтобы быть сделанным в NetworkManager или возможно пытающийся обнаружить состояние канала (обнаружение несущей). Надежда я был некоторой справкой.

1
ответ дан 1 December 2019 в 19:51

Другие вопросы по тегам:

Похожие вопросы: