netplan
我们的 Ubuntu 22 机器使用和配置了网络systemd-networkd
。网络管理器(以及nmcli
& co.)是不是已安装。
在bash
脚本中,我希望提取 DHCP 服务器收到的各种参数,特别是主机名和 DNS 域名。使用nmcli
我可以轻松转储 DHCP 信息;但是,我没有看到类似的可能性systemd-networkd
。
一个选项是解析 中的 DHCP 租约文件/run/systemd/netif/leases/
。但是,该文件的开头是这样的:
# This is private data. Do not parse.
ADDRESS=128.XXX.YYY.ZZZ
NETMASK=255.255.255.255
...
当然,无论如何我都可以解析该文件,但是如果有注释,则可能意味着无法保证内容是可解析的,或者在下一次 systemd 更新时不会改变格式。
有没有合适的方法来检索这些信息?我找到了hostnamectl
可以使用的主机名:
hostnamectl --json=short | jq '.Hostname'
但是,这只能提取机器的当前主机名(无论如何由命令报告,并且我不能保证这对应于 DHCP 主机名),或者如果我使用,则提取文件hostname
的内容。/etc/hostname
.StaticHostname
如果我想停止解析不应该解析的文件,该怎么办?