我目前正在使用 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 up
或ifconfig xxx0 dhcp
。您首先需要探索一个接口以使其可用。即使通过列出接口也ifconfig xxx0
只有在对其进行检测后才有效。