redireciona a saída de {time}

1

Estou tentando fazer um benchmark de uma única solicitação novamente em um servidor da Web e estou tendo um problema ao fazer isso, especificamente, estou tendo um problema ao redirecionar a saída do comando time .

Se eu simplesmente executar

time curl "http://www.google.com"

meu resultado é a resposta completa do corpo, seguida da impressão do comando time .

Se eu executar com redirecionamento

time curl "http://www.google.com" 1> out.log 2> err.log

Em out.log , ainda vejo o corpo da resposta e, em err.log , vejo a saída do comando curl

O problema, no entanto, é que a saída do comando time ainda está sendo impressa no terminal

[501] ~ > time curl "http://www.google.com" 1> out.log 2> err.log

real    0m0.092s
user    0m0.004s
sys     0m0.004s

[502] ~ > cat err.log
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 19093    0 19093    0     0   225k      0 --:--:-- --:--:-- --:--:--  227k

Para qual buffer a saída time e como eu posso colocar isso em um arquivo? Pelo que entendi, deveria ter sido canalizado para err.log .

    
por Matt Clark 14.04.2016 / 17:04

2 respostas

2

Você pode tentar { time curl -s https://www.google.com ; } > body.txt 2> time.txt

    
por 14.04.2016 / 17:36
1

Se você não usa a versão bash-interna, mas a ferramenta GNU (por exemplo, /usr/bin/time ), você tem a opção -o conforme explicado por man time :

/usr/bin/time -po outfile.txt curl "http://www.google.com"

escreve a hora em outfile.txt .

O tempo GNU tem muitas opções para formatar a saída, veja a man page para detalhes.

    
por 14.04.2016 / 17:17

Tags