Andre,
vc está fazendo comparações pelo shell, e normalmente estas
comparações numéricas esperam numeros inteiros.
sugiro esta troca
iostat -x 300 1| awk '(NR > 2 && $4 > 0 && $5 > 0){ print $1,$4,$5 }' | ...
conforme lhe mandei via PVT, mas isso pode servir pra mais alguem também
On 11/30/06, Andre Campos <[EMAIL PROTECTED]> wrote:
>
>
>
>
>
>
> Valeu, mais agora está dando outro erro..
>
> io.sh: [: %sys: integer expression expected
> io.sh: [: 66.54: integer expression expected
> io.sh: [: too many arguments
> io.sh: [: r/s: integer expression expected
> io.sh: [: too many arguments
> io.sh: [: 76.08: integer expression expected
> io.sh: [: too many arguments
> io.sh: [: 0.00: integer expression expected
> io.sh: [: too many arguments
> io.sh: [: 6.27: integer expression expected
> io.sh: [: too many arguments
> io.sh: [: 1.86: integer expression expected
> io.sh: [: too many arguments
> io.sh: [: 0.00: integer expression expected
> io.sh: [: too many arguments
> io.sh: [: 0.04: integer expression expected
> io.sh: [: too many arguments
> io.sh: [: 0.00: integer expression expected
> io.sh: [: too many arguments
> io.sh: [: 67.91: integer expression expected
> io.sh: [: too many arguments
> io.sh: [: 28.03: integer expression expected
> io.sh: [: too many arguments
> io.sh: [: 28.03: integer expression expected
> io.sh: [: too many arguments
>
> Este script deveria pegar o resultado do iostat e inserir em uma tabela no
> banco...
>
> Valeu!!!
>
> André Campos
>
> ---------- Início da mensagem original -----------
>
> De: [email protected]
> Para: [email protected]
> Cc:
> Data: Thu, 30 Nov 2006 16:11:40 -0200
> Assunto: Re: [shell-script] Rotina de consumo de IO
>
> > seu erro está aqui:
> >
> > if [ $VMSTAT_IO_R -gt 0 ] and [ $VMSTAT_IO_W -gt 0 }
> >
> > deveria ser
> >
> > if [ "${VMSTAT_IO_R}" -gt 0 -a "${VMSTAT_IO_W}" -gt 0 ]
> >
> > O que deveria fazer este script é algo que necessita de uma engenharia
> > reversa. Veja o que sai de cada um dos pipes, sem medo.
> >
> > Comece vendo o resultado do iostat.
> >
>
> > On 11/30/06, Andre Campos <[EMAIL PROTECTED]> wrote:
> > >
> > >
> > > Amigos,
> > >
> > > Alguém saberia me dizer o que está errado nessa rotina???
> > >
> > > #!/bin/ksh
> > > while true
> > > do
> > > iostat -x 300 1|\
> > > sed 1,2d|\
> > > awk '{ printf("%s %s %s\n", $1, $4, $5) }' |\
> > > while read HDISK VMSTAT_IO_R VMSTAT_IO_W
> > > do
> > > if [ $VMSTAT_IO_R -gt 0 ] and [ $VMSTAT_IO_W -gt 0 }
> > > then
> > > sqlplus -s perfstat/perfstat <<!
> > > insert into perfstat.stats\$iostat
> > > values
> > > (SYSDATE, 5, '$HDISK', $VMSTAT_IO_R, $VMSTAT_IO_W);
> > > exit
> > > !
> > > fi
> > > done
> > > sleep 300
> > > done
> > >
> > > Estou recebendo o seguinte erro : io.sh: [: missing `]'
> > >
> > > Obrigado
> > >
> > > André Campos
> > > --
> > Tiago B Peczenyj
> > Linux User #405772
> >
> > # cd /pub
> > # more beer
> >
>
>
>
>
--
Tiago B Peczenyj
Linux User #405772
# cd /pub
# more beer