3

我正在尝试使用 wbemcli 命令检查远程 IBM i (as400) 机器上的以太网卡状态:

wbemcli -nl ei ".../root/cimv2:IBMOS400_EthernetPort"

大量字段似乎描述了卡的状态,其中大部分是空的:

(...)
-OperationalStatus=2
-StatusDescriptions="THE LINE IS IN USE."
-Status=
-HealthState=
-CommunicationStatus=
-DetailedStatus=
-OperatingStatus=
-PrimaryStatus=
-EnabledState=2
-OtherEnabledState=
-RequestedState=5
-EnabledDefault=6
-TimeOfLastStateChange=
-AvailableRequestedStates=
-TransitioningToState=12
(...)
-Availability=3
-StatusInfo=
(...)

唯一的非空字段只包含整数,我真的不知道该怎么办。有人有线索吗?我正在编写一个脚本,假设 OperationalStatus=2 表示“UP”,否则表示“DOWN”,但这并不可靠。

谢谢,

4

1 回答 1

1

使用搜索词 AS400 很可能是徒劳的;该操作系统多年来一直被称为 IBM i,这就是当前文档所在的位置。无论如何,服务器运行的是哪个版本的 IBM i?如果它真的很旧,那么您可能还没有很好的 CIM 支持。这是 7.1 的手册:(从知识中心开始)IBM i 7.1 > 系统管理 > 通用信息模型 > CIM 参考信息 > 硬件清单和网络管理提供程序 > IBM_EthernetPort 不幸的是,IBM 的 CIM 实现和 CIM 的架构。这是Schema 2.40 CIM-Device的链接,它显示了 OperationalStatus,但只是将其定义为 uint16[]

可能还有另一个问题 - IBM i 的较新版本可以虚拟化,您可能无法通过 CIM 查看物理硬件。事实上,我不知道。这是你需要研究的东西。

编辑:如何使用 PASE 进行测试:事实证明,IBM i 7.1(带有适当的 PTF)和 7.2(我的版本)有可用的 CIM 命令行命令,所以我花了一点时间尝试了一些。它们以 PASE ( call qp2term) 运行:

cimcli ni IBM_EthernetPort
IBM_EthernetPort.CreationClassName="IBM_EthernetPort",DeviceID="ETHLINE",SystemCreationClassName="IBMOS400_ComputerSystem",SystemName="my.system.com"
IBM_EthernetPort.CreationClassName="IBM_EthernetPort",DeviceID="ETHLINEPUB",SystemCreationClassName="IBMOS400_ComputerSystem",SystemName="my.system.com"
IBM_EthernetPort.CreationClassName="IBM_EthernetPort",DeviceID="ETHLINEPVT",SystemCreationClassName="IBMOS400_ComputerSystem",SystemName="my.system.com"

cimcli ei IBM_EthernetPort                          
path= IBM_EthernetPort.CreationClassName="IBM_EthernetPort",DeviceID="ETHLINE",SystemCreationClassName="IBMOS400_ComputerSystem",SystemName="my.system.com"

//Instance of IBM_EthernetPort
instance of IBM_EthernetPort  
{                             
InstanceID = NULL;            
Caption = "Ethernet port ETHLINE";                     
Description = "Ethernet port information for ETHLINE.";
ElementName = "ETHLINE";                               
InstallDate = NULL;                                    
Name = "ETHLINE";                                      
OperationalStatus = {2};                               
StatusDescriptions = {"The line is in use."};          
Status = NULL;                                         
HealthState = NULL;                                    
CommunicationStatus = NULL;                            
DetailedStatus = NULL;                                 
OperatingStatus = NULL;                                
PrimaryStatus = NULL;                                  
EnabledState = 2;                                      
OtherEnabledState = NULL;                              
RequestedState = 5;                                    
EnabledDefault = 6;                                    
...
于 2015-06-19T16:31:38.373 回答