Unix 如何在几秒钟后自动停止snmpwalk命令的输出

Unix 如何在几秒钟后自动停止snmpwalk命令的输出,unix,Unix,我必须编写一个脚本来自动执行snmpwalk命令。输入是一个文本文件,其中包含社区字符串及其各自的IP地址。如果对于一个IP地址,我必须在几秒钟后停止snmpwalk命令的输出,那么怎么做呢?也许超时命令就是您要找的 timeout 1s sleep 10 。。。1秒后返回 timeout 3s snmpwalk -v2c -c public myhost.mydomain 。。。运行snmpwalk,最多3秒后返回 如果超时命令在您的系统上不可用,请参阅下面使用perl的更通用解决方案 p

我必须编写一个脚本来自动执行snmpwalk命令。输入是一个文本文件,其中包含社区字符串及其各自的IP地址。如果对于一个IP地址,我必须在几秒钟后停止snmpwalk命令的输出,那么怎么做呢?

也许超时命令就是您要找的

timeout 1s sleep 10
。。。1秒后返回

timeout 3s snmpwalk -v2c -c public myhost.mydomain
。。。运行snmpwalk,最多3秒后返回

如果超时命令在您的系统上不可用,请参阅下面使用perl的更通用解决方案

perl -e 'alarm shift @ARGV; exec @ARGV' 3 snmpwalk -v2c -c public myhost.mydomain
。。。运行snmpwalk,最多3秒后返回

命令“shift@ARGV”从参数数组中取出第一个元素(例如:报警3)。第二个命令“exec@ARGV”执行参数数组的其余部分(例如:exec'snmpwalk-v2c-c public myhost.mydomain')

因此,上面的oneliner扩展为以下perl脚本:

alarm 3;
exec 'snmpwalk -v2c -c public myhost.mydomain';

我在red hat环境中使用bash shell。如果我使用超时,则未找到命令。我很抱歉问这个愚蠢的疑问,但我对perl一无所知。但是我可以在unixOMG中使用perl关键字吗!!!!我试过了,它能工作……非常感谢。还有一个帮助,你能告诉我这个perl命令背后的一些逻辑吗?使用命令“yum-provides/usr/bin/timeout”,检查你的软件存储库中是否有它