[Ruby] Re: [Ruby] Re: [Ruby] IO.popen("cmd").readlines.grep(/str/) оставляет зомби

Alexander Bokovoy a.bokovoy at sam-solutions.net
Fri Apr 25 13:19:17 MSD 2003


On Fri, Apr 25, 2003 at 12:14:29PM +0300, Sergei Olonichev wrote:
> >>1. А почему нельзя использовать стандартный grep? Зачем изобретать
> >>велосипеды?
> >>2. Наверное вы хотели написать /192[.]168[.]1[.]244/ а не /192.168.1.244/ 
> >>?
> >>
> >>ipt=IO::popen("iptables -nvL FORWARD | grep /192[.]168[.]1[.]244/")
> >>   
> >>
> >Системный греп не подходит,поскольку iptables|grep придется  вызывать на 
> >каждый ИП-адрес.
> >А так я все считываю в буфер и разбираю уже средствами руби.быстрее 
> >получается.
> > 
> >
> 
> Если у вас много ip адресов то оба эти метода практически одинаково 
> неэффективны.
> 
> Я бы посоветовал :
> 
> 1. построить _одно_ регулярное выражение для _всех_ ip адресов, а потом 
> запускать iptables + grep (egrep).
> 2. в руби просто строить hash: ip->info для всех возращаемых ip адресов
> 
> Тогда вам не придеться запускать пайп для каждого адреса.
А зачем вообще запускать внешний grep? Сергей, ты не объяснишь мне, что
такое реально лучшее от этого будет?
-- 
/ Alexander Bokovoy
---
It's all right letting yourself go as long as you can let yourself back.
		-- Mick Jagger



More information about the Ruby mailing list