在传递参数给脚本的时候RUN+=1.sh 1,无法将参数1传递给执行的脚本,路径是对的。
要实现通过执行脚本获取返回的businfo并将其填入udev规则的KERNELS属性值中,可以按照以下步骤进行操作:
创建udev规则文件:首先,在/etc/udev/rules.d/
目录下创建一个命名为70-persistent-net.rules
的udev规则文件。
编写脚本:创建一个脚本,用于获取网卡的businfo并输出。例如,你可以使用以下Python脚本:
#!/usr/bin/env python
import subprocess
# 执行命令获取businfo
output = subprocess.check_output("command-to-get-businfo", shell=True)
businfo = output.decode().strip()
# 输出businfo
print(businfo)
将上述脚本中的command-to-get-businfo
替换为你自己的命令,用于获取网卡的businfo。确保该脚本能够输出正确的businfo。
70-persistent-net.rules
文件中,编写相应的udev规则,将获取到的businfo填入KERNELS属性值中。以下是一个示例:ACTION=="add", SUBSYSTEM=="net", ENV{ID_MODEL_FROM_DATABASE}=="YourEthernetDevice", RUN+="/path/to/your/script.sh", KERNELS=="[your-original-KERNELS-value]", KERNEL=="eth*", NAME="your-interface-name"
注意,上述规则中的YourEthernetDevice
需要替换为你的网卡设备的识别属性,/path/to/your/script.sh
需要替换为你实际的脚本路径,并确保脚本具有可执行权限。
sudo service udev restart
以上步骤将根据执行脚本获取到的businfo填入udev规则的KERNELS属性值中,从而实现网口的命名。
请注意,如果你替换了网卡或硬件,businfo可能会发生变化,因此需要相应地更新udev规则中的设备信息。你可以在发生变化后执行脚本以获取新的businfo,并更新udev规则文件中的对应信息。