我想到的是通过查找网卡配置文件 /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 1
这个问题的前提是系统管理员一定用 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
|