Как дождаться интерфейса eth0 перед запуском команд «ip link», «ip addr» и «ip route»?

Установите версию 2.4 с помощью команды apt-get install mongodb , а после этого используйте команду:

sudo apt-get install -y mongodb-org=3.0.1 mongodb-org-server=3.0.1 mongodb-org-shell=3.0.1 mongodb-org-mongos=3.0.1 mongodb-org-tools=3.0.1

у меня сработало теперь у меня есть mongodb 3.0.1 в debian jessie 8.4

3
21.06.2019, 23:04
2 ответа

Проверьте состояние eth0из /sys/class/net/eth0/operstateи подождите, пока сетевой интерфейс не включится:

while ! [ "$(cat /sys/class/net/eth0/operstate)" = "up" ] 
do
    echo  "waiting for eth0 to be up"
    sleep 2
done

ip link add macvlan0 link eth0 type macvlan mode bridge
ip addr add 192.168.0.240/32 dev macvlan0
ip link set macvlan0 up
ip route add 192.168.0.240/28 dev macvlan0
2
27.01.2020, 21:17

Вот решение, с помощью которого я в итоге решил свою проблему:

while ! ip link show eth0 | grep -q 'state UP'; do
    sleep 1
done

ip link add macvlan0 link eth0 type macvlan mode bridge
ip addr add 192.168.0.240/32 dev macvlan0
ip link set macvlan0 up
ip route add 192.168.0.240/28 dev macvlan0

Однако у меня было 2 запланированных задания «загрузка -вверх» на Synology, и я получал некоторые ошибки при загрузке -. Чтобы решить эту проблему, я настраиваю эту задачу так, чтобы другая была предварительной задачей -. Другими словами, задачи выполняются последовательно, ожидая завершения предыдущей задачи перед запуском новой.

3
27.01.2020, 21:17

Теги

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