[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