shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] performance


From: Paulo Bettega
Subject: Re: [shell-script] performance
Date: Thu, 24 Apr 2014 00:24:26 -0300
User-agent: Mozilla/5.0 (X11; Linux i686; rv:24.0) Gecko/20100101 Thunderbird/24.4.0

Olá Adauto, se entendi o script, a função Comando é diferente da variável 
$Comando.

A variável $Comando é /bin/echo que mostra na tela
as duas linhas, mas não executa o iptables.

A função Comando não mostra na tela, mas sim executa as linhas do iptables,
incluindo a regra e logo depois deletando a mesma regra.
No fim do loop com a função não haverá nenhuma dessas regras no iptables.


Seguindo os exemplos do Julio, os tempos executando a função foram próximos.

Comando ()
{
    $@ 2> /dev/null;
    if [ $? != 0 ]; then
        echo $PROC ` date "+%d/%m/%Y %H:%M:%S"` $@ >> $ARQUIVO_LOG;
        RET_COMANDO="ERRO:Comando(s) Invál¡do(s). Verifique o Log";
    fi
}


time for ((I=1;I<256;I++)); do
Comando iptables -A FORWARD -s 100.100.100.$I -j ACCEPT
Comando iptables -D FORWARD -s 100.100.100.$I -j ACCEPT
done

real    0m3.255s
user    0m1.083s
sys     0m1.094s


time for I in {1..255}; do
Comando iptables -A FORWARD -s 100.100.100.$I -j ACCEPT
Comando iptables -D FORWARD -s 100.100.100.$I -j ACCEPT
done

real    0m3.340s
user    0m1.056s
sys     0m1.107s


time for I in `seq 1 255`; do
Comando iptables -A FORWARD -s 100.100.100.$I -j ACCEPT
Comando iptables -D FORWARD -s 100.100.100.$I -j ACCEPT
done

real    0m3.109s
user    0m1.013s
sys     0m1.133s


Abraços Paulo Bettega


On 23-04-2014 17:03, Adauto Santos wrote:
Caros, tenho o script abaixo:

ARQUIVO_LOG="fire.log"
PROC="Forward-Lan"

Comando()
{
     $@ 2> /dev/null
     if [ $? != 0 ]
     then
         echo $PROC ` date "+%d/%m/%Y %H:%M:%S"` $@ >> $ARQUIVO_LOG
RET_COMANDO="ERRO:Comando(s) Invádo(s). Verifique o Log";
     fi
}

Comando="/bin/echo"
RET_COMANDO="OK";

for I in `seq 1 255`
do

     $Comando iptables -A FORWARD -s 100.100.100.$I -j ACCEPT
     $Comando iptables -D FORWARD -s 100.100.100.$I -j ACCEPT

done


E quando o executo dessa forma, ecoando na tela, tenho esse resultado:

# time ./teste.sh

real    0m0.546s
user    0m0.096s
sys     0m0.407s

Se mudo o trecho do for para essa forma:

#Comando="/bin/echo"
RET_COMANDO="OK";

for I in `seq 1 255`
do

     Comando iptables -A FORWARD -s 100.100.100.$I -j ACCEPT
     Comando iptables -D FORWARD -s 100.100.100.$I -j ACCEPT

done

Obtenho esse resultado:

# time ./teste.sh

real    0m2.513s
user    0m0.307s
sys     0m2.056s

Pergunto, é possível deixá-lo mais performático?

Obrigado.

Adauto Santos



reply via email to

[Prev in Thread] Current Thread [Next in Thread]