自动检测 Solaris 11 中每个网络接口的网络接口

自动检测 Solaris 11 中每个网络接口的网络接口

我目前正在使用 shell 脚本来监视 Solaris 系统。该脚本的主要目的是显示信息,例如:内存、网络等。

在网络部分,它将显示诸如 arp 表、可用网络接口等信息。

问题是,该脚本不仅适用于一个系统,因此其他系统有不同的网卡。例如:对于其中一个我有网络1,在另一个我有基因组0。我需要创建一个函数来评估接口是否为 net1 显示此命令的结果:

ifconfig -a | grep [network interface name]

该脚本将评估以下内容:如果操作系统是 Solaris 10,则显示可用的网卡及其使用的 IP,如果操作系统是 Solaris 11,则显示 [其他部分...]

我希望能够非常清楚地解释这一点。

我用了ifconfig命令,ipadm因为我实际上有 Solaris 10 和 Solaris 11 系统。

答案1

也许我不完全理解你的问题,但我读它就好像你想检查所有已安装的接口是否已配置。

要查看已安装的接口,您可以使用dladm show-link|grep -v "LINK"|awk '{print $1}'两者来获取接口链接列表。

您可以使用此列表作为输入来检索所需的ifconfig输出:

for NIC in $(dladm show-link|grep -v "LINK"|awk '{print $1}'); do ifconfig $NIC; done;

答案2

您首先需要调用ifconfig -a plumb以获取所有潜在接口,然后才能检查列表。

请注意,ifconfig -a仅列出已检测的接口,而ifconfig -a plumb实际上适用于所有接口 - 即使是那些尚未检测的接口。

请注意,您无法配置未检测的接口。无论您是否喜欢打电话ifconfig xxx0 upifconfig xxx0 dhcp。您首先需要探索一个接口以使其可用。即使通过列出接口也ifconfig xxx0只有在对其进行检测后才有效。

相关内容