Olha é muito dificil eu não usar um pipe, pegar o primeiro parametro assim :
PARAM_DATA_UNIXTIME=${SQUID_LINHA%% *}
Eu já uso a bastante tempo, mas não há como pegar o segundo parametro, terceiro,... dessa forma, eu tenho que fatiar o relatorio colunado do squid e despachar para outro arquivo aquilo que for importante.
Quando meu script chegou a esse laço while já passou pelos greps da vida que eliminaram efemeridades que não me interessavam.SQUIDLOG="/var/log/squid3/access.log"
FINISH=$(wc -l "$SQUIDLOG"|cut -d" " -f1)
STARTING=0
while read SQUID_LINHA ; do
STARTING=$((STARTING+1))
PERC=$((STARTING*100/$FINISH))
PARAM_DATA_UNIXTIME=`echo $SQUID_LINHA|cut -d " " -f 1`
PARAM_DATA_UNIXTIME=`expr "$PARAM_DATA_UNIXTIME-10800"|bc`
PARAM_DATA=`date +%d-%m-%Y+%H:%M -d "1970-01-01 $PARAM_DATA_UNIXTIME sec"`
if [ "$PARAM_DATA" = "$DATA_DESEJADA" ] ; then
PARAM_DURACAO=`expr $SQUID_LINHA|cut -d " " -f 2`
DURACAO_SEGUNDOS="$[PARAM_DURACAO/100]"
PARAM_DURACAO=`date +%H:%M:%S -d "1970-01-01 $DURACAO_SEGUNDOS sec"`
PARAM_CLIENTE=`expr $SQUID_LINHA|cut -d " " -f 3`
PARAM_RESULTADO=`expr $SQUID_LINHA|cut -d " " -f 4`
PARAM_BYTES=`expr $SQUID_LINHA|cut -d " " -f 5`
PARAM_METODO_REQUISITADO=`expr $SQUID_LINHA|cut -d " " -f 6`
PARAM_URL=`expr $SQUID_LINHA|cut -d " " -f 7`
PARAM_LOGIN=`expr $SQUID_LINHA|cut -d " " -f 8`
PARAM_HIERARQUIA_CODIGO=`expr $SQUID_LINHA|cut -d " " -f 9`
PARAM_MIME=`expr $SQUID_LINHA|cut -d " " -f 10`
...
blablabla....
fi
done < $SQUIDLOG
Na realidade eu perco muito tempo na filtragem, o log do squid tem vários dias armazenados, mas se eu quiser pegar os dados do dia 20-10-2011, e os logs contém arquivos desde o dia 15 então tenho que avançar 5 dias linha-a-linha para finalmente chegar aonde eu desejo. Isso tem sido uma tortura para mim pq mesmo apenas o "while read SQUID_LINHA ; do ... done" já demora bastante até chegar o dia 20.
Eu precisava dum jeito mais rápido.
Eu tô pesando seriamente em facilitar o meu lado por mudar as configurações do squid só para não ter que converter o formato unixdate e realizar um grep mantendo apenas a data desejada. Daí a velocidade aumentaria bastante, a questão é que se eu alterar o formato original do squid, nunca mais vou poder usar algum programa analizador de logs que houverem para ele.
[]'s