
我想到的是通过查找网卡配置文件 /etc/network/interfaces 的内容来判定,但是网卡配置可能写到了 /etc/network/interfaces.d 下的某个文件,而且配置文件内容的一行要是被拆成了奇形怪状的好几行怎么办?虽然多写几句 bash script 也能搞定,但是想问问有没有别的办法。
那个 ifquery 命令我试过,没有用,按 help 输出和 manpage 操作,要么输出为空,要么根本不能正常解析它自己的选项,连示例都不能运行。
1 Ayahuasec 2021-10-24 10:56:47 +08:00 dhcp 和 static/manual 好像可以通过 ip addr 里每个网卡的 ip 的那一行看有没有 dynamic 来确定 不过我也不知道怎么把 manual 和 static 区别开来 |
2 Remember 2021-10-24 12:17:31 +08:00 ps -auxf , check if isc-dhcp process exist. |
5 zyq2280539 2021-10-24 13:36:21 +08:00 debian 下不知道,我知道 ubuntu 下做这些很容易 |
6 ruidoBlanco 2021-10-24 14:35:30 +08:00 一句话的事儿。 awk '/iface eth0/' /etc/network/{interfaces,interfaces.d/*} |
7 Arnie97 2021-10-24 14:45:42 +08:00 这个问题的前提是系统管理员一定用 ifupdown 体系设置的网络么… 作为只用 systemd networkd 并把 /etc/network 整个删了的 Debian 用户,我建议用一楼说的判定逻辑: $ ip a s eth0 dynamic |
8 liuxu 2021-10-24 16:03:23 +08:00 $ journalctl -u NetworkManager --no-tail |grep dhclient |