다음 명령을 사용하여 cygwin 콘솔 출력(stdout 및 stderr)을 저장하고 볼 수 있습니다.
python command.py 2>&1 | tee -a outFile.txt// Note -a is for appending
명령이 다르고 실행하는 데 시간이 다르기 때문입니다. 시작 시간을 어떻게 저장하나요?
09:00:00AM
file stream file stream file stream file stream
file stream file stream file stream file stream
.
.
.
file stream file stream file stream file stream
09:07:20AM
시작 및 종료 타임스탬프를 기록해 두세요. 시차를 기록할 수 있으면 참 좋을 것 같아요
Total execution time: 00:07:20
예, cygwin에서 date 명령을 사용하여 시간을 얻을 수 있습니다.
$ date -> Tue, Mar 22, 2016 12:00:47 AM
하지만 변수의 시간을 가져오려면 이 날짜를 구문 분석해야 하고 경과 시간을 가져오려면 diff를 수행해야 합니까?
답변1
다음과 같은명령 순서로그 파일에서 시작/종료 및 경과 시간을 얻으려고 합니다. 이를 수행하는 더 좋은 방법이 있을 수 있습니다.
date 2>&1 | tee -a outFile.txt && SECONDS=0 && command.py 2>&1 | tee -a outFile.txt && date 2>&1 | tee -a outFile.txt && duration=$SECONDS echo "Total Execution Time: $(($duration / 60)) m $(($duration % 60)) s" 2>&1 | tee -a outFile.txt
시작 날짜를 가져와서 파일에 추가합니다.
date 2>&1 | tee -a outFile.txt
그런 다음 명령을 실행하고 파일에 추가합니다.
&& SECONDS=0 && command.py 2>&1 | tee -a outFile.txt
그런 다음 종료 날짜를 가져와 파일에 추가합니다.
&& date 2>&1 | tee -a outFile.txt
마지막으로 경과 시간을 계산하고 파일에 추가합니다.
&& duration=$SECONDS echo "Total Execution Time: $(($duration / 60)) m $(($duration % 60)) s" 2>&1 | tee -a outFile.txt
아래는 로그 파일의 출력입니다.
Tue, Mar 22, 2016 4:01:18 PM
file stream file stream file stream file stream
file stream file stream file stream file stream
.
.
.
file stream file stream file stream file stream
Tue, Mar 22, 2016 4:01:23 PM
Total Execution Time: 0 m 7 s