(Ubuntu 服务器)有没有办法检查 eth0 是否正常工作,如果不正常工作,则启用 wlan0?

(Ubuntu 服务器)有没有办法检查 eth0 是否正常工作,如果不正常工作,则启用 wlan0?

你好,我正在设置一台有无线网卡和以太网卡的服务器。我希望只有 eth0 连接可以工作。但是,如果 eth0 由于某种原因失败,我希望它打开 wlan0 并尝试连接。有办法吗?

我正在想象一个 cron 作业,它会不时检查 eth0 是否连接到路由器,如果失败,它将运行“sudo ifup wlan0”,然后向我发送一封电子邮件。

但如果有更优雅的解决方案,我也会感兴趣。谢谢!

答案1

您可以在/etc/network/if-down.d/和 中创建脚本/etc/network/if-up.d/。类似这样。使脚本script以执行权限调用755

例如eth0网络接口的名称

为了/etc/network/if-down.d/

# Check for specific interface if desired
[ "$IFACE" != "eth0" ] || exit 0
# Do something
sudo ifup wlan0

为了/etc/network/if-up.d/

# Check for specific interface if desired
[ "$IFACE" != "eth0" ] || exit 0
# Do something
sudo ifdown wlan0

Demon 会在eth0下降时将其提升wlan0eht0上升时将其下降wlan0

答案2

2707974 个答案整体解决方案是正确的,但是脚本逻辑是错误的:它们在应该采取行动时退出,在应该退出时采取行动;

我们还应该把脚本放进去/etc/network/if-post-down.d/,因为根据这里 /etc/network/if-down.d/脚本在接口关闭之前运行。

正确答案是:

/etc/network/if-post-down.d/script

# Check for specific interface if desired
[ "$IFACE" = "eth0" ] || exit 0
# Do something
sudo ifup wlan0

/etc/network/if-up.d/script

# Check for specific interface if desired
[ "$IFACE" = "eth0" ] || exit 0
# Do something
sudo ifdown wlan0

当 eth0 发生故障时,启动 wlan0;当 eht0 发生故障时,关闭 wlan0

相关内容