0
我正在尝试运行tcpstat命令,该命令给出接收的请求数量为icmp的输出。同时我需要检查计数,以便如果超过某个阈值,应该显示一条消息。执行tcpstat命令并同时对其输出执行
我尝试了这样的事情
#!/usr/bin/perl
my @count= system "tcpstat -i eth1 -f icmp[0]==8 -o %C";
my $i=0;
while ($i<1000)
{
print "count of packets is :".$count[$i]."\n";
$i=$i+1;
if($count[$i]>50)
{
print "thats a lot of pings";
}
}
,但它似乎并没有工作,因为...命令的执行没有用户中断并没有结束......
是可能做到这一点?运行命令并同时对其输出执行操作?
相同的问题..它给我一个闪烁的光标的空白屏幕。 可能是因为直到tcp stat命令完成其执行,控件才会转到while循环。 –
要追踪它,您可以添加一些'print'调用并知道它被阻止的位置。考虑收到的输入是否被缓冲。检查这个http://stackoverflow.com/questions/12351500/perl-disable-buffering-input – VoidPointer