GNU/Linux >> Linux の 問題 >  >> Linux

ip link、ip addr、および ip route コマンドを実行する前に eth0 インターフェイスを待機するにはどうすればよいですか?

これが私が最終的に私の問題を解決した解決策です:

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

ただし、Synology で 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

Linux
  1. バックグラウンドおよびフォアグラウンドでのLinuxコマンドの実行

  2. 長いパスのエイリアスを作成するには?

  3. 特定のインターフェースで cURL を使用する方法

  1. Linuxでシャットダウンおよび再起動コマンドを無効にする方法

  2. sudo コマンドのパスを設定する方法

  3. インターネットへの接続に使用しているインターフェイスを確認するにはどうすればよいですか?

  1. 自動化のためにAnsibleとanacronを使用する方法

  2. Linuxでハードリンクとシンボリックリンクを作成する方法

  3. Linux で、特定の宛先ホストへのルートに使用されているネットワーク インターフェイスと送信元 IP アドレスを確認するにはどうすればよいですか?