NetworkManager判断网卡离线后 重新激活的脚本
时间: 2023-08-05 17:04:51 浏览: 189
你可以使用 NetworkManager 的 dispatcher.d 功能来执行脚本。dispatcher.d 是 NetworkManager 的一个插件,用于在网络状态发生变化时执行脚本。
以下是一个示例脚本,当网卡离线时,它会重新激活网卡:
```bash
#!/bin/bash
if [ "$2" = "down" ]; then
# 当网卡离线时,执行以下命令
nmcli device reapply eth0
fi
```
将脚本保存为 /etc/NetworkManager/dispatcher.d/99-restart-eth0,并确保脚本具有可执行权限(chmod +x /etc/NetworkManager/dispatcher.d/99-restart-eth0)。
当网卡状态发生变化时,NetworkManager 将自动执行此脚本。请注意,此脚本仅适用于名为 eth0 的网卡。如果您使用其他网卡,请将脚本中的 eth0 替换为您的网卡名称。
相关问题
ubuntu20.04如何编写监测NetworkManager离线通知的脚本
在 Ubuntu 20.04 中,你可以使用脚本来监测 NetworkManager 的设备离线通知。具体步骤如下:
1. 安装必要的软件包
在终端中输入以下命令,安装必要的软件包:
```
sudo apt-get update
sudo apt-get install libdbus-1-dev libdbus-glib-1-dev
```
这些软件包是编写 D-Bus 监听程序所必需的。
2. 创建脚本文件
在终端中输入以下命令,创建一个新的脚本文件:
```
nano network-monitor.sh
```
在文件中输入以下内容:
```
#!/bin/bash
dbus-monitor --system "type='signal',interface='org.freedesktop.NetworkManager.Device',member='DeviceDisconnected'" |
while read line; do
if echo "$line" | grep -q "eth0"; then
notify-send "Ethernet disconnected"
elif echo "$line" | grep -q "wlan0"; then
notify-send "Wireless disconnected"
fi
done
```
这个脚本会使用 `dbus-monitor` 命令来监听 NetworkManager 的设备离线通知,并在设备离线时发送通知。脚本中的 `eth0` 和 `wlan0` 是示例设备名称,你需要将它们替换为你自己的设备名称。
3. 保存和退出脚本文件
在 Nano 编辑器中,按下 Ctrl + X,然后按下 Y 和 Enter,保存并退出脚本文件。
4. 赋予脚本执行权限
在终端中输入以下命令,赋予脚本文件执行权限:
```
chmod +x network-monitor.sh
```
5. 运行脚本
在终端中输入以下命令,运行脚本:
```
./network-monitor.sh
```
现在,当 NetworkManager 标记一个设备为离线时,脚本将会发送一个通知,告知你设备已经离线。
ubuntu20.04 NetworkManager 设置网卡始终激活状态
可以通过以下步骤设置 NetworkManager 让网卡始终处于激活状态:
1. 打开终端,运行以下命令编辑 NetworkManager 的配置文件:
```
sudo nano /etc/NetworkManager/conf.d/default-wifi-powersave-on.conf
```
2. 将文件中的 `wifi.powersave = 3` 修改为 `wifi.powersave = 2`。
3. 保存并关闭文件。
4. 重启 NetworkManager 服务,运行以下命令:
```
sudo systemctl restart NetworkManager.service
```
5. 打开网络设置界面,选择需要始终激活的网卡,点击齿轮图标进入设置,将“自动连接”选项设置为开启状态。
这样设置后,选择的网卡就会始终处于激活状态,即使电源管理器将其设置为非激活状态也不会影响。
阅读全文