我正在使用Try :: Tiny语句来避免失败,如果我能够a到主机。但似乎rsh正在无限期地重审。
在这种特殊情况下,Host2发生故障,代码只是反复尝试联系Host2,直到我用CTRL + C取消执行。我期待的是Host2 rsh命令失败,以及脚本移动到Host3。
知道为什么这不起作用以及我怎么能以不同的方式做到这一点?
@Win_Clients = ("Host1","Host2","Host2");
foreach $Win_Client (@Win_Clients){
try {
@mem= rsh ($Win_Client, "wmic memphysical get MaxCapacity");
print "host=$Win_Client, mem=$mem";
};
}
答案 0 :(得分:0)
我认为您最好的解决方案是不使用rsh
来运行wmic,而是使用内置的远程访问机制/node
C:\Users\ME>wmic /node:localhost memphysical get MaxCapacity
MaxCapacity
4194304
C:\Users\ME>wmic /node:narf memphysical get MaxCapacity
Node - narf
ERROR:
Description = The RPC server is unavailable.
然后您无需执行任何操作rsh
或try
。您可以通过“常规方式”简单地捕获错误级别。 (perl客户端中$?
)
C:\Users\ME>wmic /?
[global switches] <command>
The following global switches are available:
/NAMESPACE Path for the namespace the alias operate against.
/ROLE Path for the role containing the alias definitions.
/NODE Servers the alias will operate against.