웹 서버에 대한 단일 요청을 벤치마킹하려고 하는데 그렇게 하는 데 문제가 있습니다. 특히 명령의 출력을 리디렉션하는 데 문제가 있습니다 time
.
내가 그냥 달리면
time curl "http://www.google.com"
내 결과는 전신 응답과 time
명령 출력입니다.
리디렉션을 통해 실행하면
time curl "http://www.google.com" 1> out.log 2> err.log
여전히 out.log
응답 본문이 표시되고 err.log
컬 명령의 출력이 표시됩니다.
그러나 문제는 명령의 출력이 time
여전히 터미널에 인쇄된다는 것입니다.
[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
출력은 어느 버퍼에 있으며 time
파일에 어떻게 넣나요? 내 이해로는 err.log
.
답변1
당신은 사용해 볼 수 있습니다
{ time curl -s https://www.google.com ; } > body.txt 2> time.txt
답변2
bash 내부 버전을 사용하지 않고 GNU 도구(예: )를 사용하는 경우 아래 설명된 옵션을 선택할 /usr/bin/time
수 있습니다 .-o
man time
/usr/bin/time -po outfile.txt curl "http://www.google.com"
에 시간을 쓸 것입니다 outfile.txt
.
GNU 시간에는 출력 형식 지정을 위한 다양한 옵션이 있습니다. 자세한 내용은 매뉴얼 페이지를 참조하세요.