GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana menunggu antarmuka eth0 sebelum menjalankan perintah ip link, ip addr dan ip route?

Inilah solusi yang akhirnya saya selesaikan dengan masalah saya:

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

Namun, saya memiliki 2 tugas terjadwal "boot-up" di Synology saya dan saya mendapatkan beberapa kesalahan saat boot-up. Untuk mengatasi masalah itu, saya mengonfigurasi tugas ini agar yang lain sebagai pra-tugas. Dengan kata lain, tugas dijalankan secara berurutan, menunggu tugas sebelumnya selesai sebelum memulai yang baru.


Periksa status eth0 dari /sys/class/net/eth0/operstate dan tunggu hingga antarmuka jaringan aktif:

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

Linux
  1. Cara Menonaktifkan Perintah Shutdown dan Reboot di Linux

  2. Menjalankan Perintah Linux di Latar Belakang dan Latar Depan

  3. cara menggunakan cURL pada antarmuka tertentu

  1. Cara mengatur jalur untuk perintah sudo

  2. Bagaimana cara mengetahui antarmuka mana yang saya gunakan untuk terhubung ke internet?

  3. Bagaimana cara melihat di Linux antarmuka jaringan dan alamat IP sumber apa yang digunakan untuk rute ke host tujuan tertentu?

  1. Bagaimana saya menggunakan Ansible dan anacron untuk otomatisasi

  2. Cara Membuat Tautan Keras dan Simbolik di Linux

  3. Temukan antarmuka untuk rute ke host tertentu