要实现对所有网卡 up/down 状态的监控,并在状态改变时对同属于一个网桥下的其他网口执行 down 操作,可以按照以下步骤进行:
首先,安装 NetworkManager-dispatcher:
sudo apt-get install network-manager-dispatcher
创建脚本文件用于监控和处理网络状态变化:
sudo nano /etc/NetworkManager/dispatcher.d/99-custom-action.sh
在脚本文件中添加以下内容: “`shell #!/bin/bash
# 获取当前操作类型(up 或 down) action=$1
# 获取当前接口名称 interface=$2
# 获取当前接口所属的网桥名称 bridge=\((brctl show | awk -v iface="\)interface” ‘\(4 == iface { print \)1 }’)
if [ “\(action" = "down" ] && [ -n "\)bridge” ]; then
# 如果是 down 操作且接口属于某个网桥,则获取该网桥下的所有接口列表并执行 down 操作
interfaces=$(brctl showstp "$bridge" | awk 'NR > 2 { print $1 }')
for intf in $interfaces; do
if [ "$intf" != "$interface" ]; then
ip link set dev "$intf" down
fi
done
fi
exit 0;
```
保存并退出脚本文件。
授予脚本执行权限:
sudo chmod +x /etc/NetworkManager/dispatcher.d/99-custom-action.sh
重启 NetworkManager 服务以使更改生效:
sudo systemctl restart NetworkManager
现在,当任何一个网卡的状态发生变化时(up 或 down),如果它属于某个网桥,脚本将会将该网桥下的其他网口执行 down 操作。
内容由零声教学AI助手提供,问题来源于学员提问