cygwin을 사용하여 명령 시작 시간과 명령 종료 시간을 txt 파일에 기록하는 방법

cygwin을 사용하여 명령 시작 시간과 명령 종료 시간을 txt 파일에 기록하는 방법

다음 명령을 사용하여 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
  1. 시작 날짜를 가져와서 파일에 추가합니다.

    date 2>&1 | tee -a outFile.txt 
    
  2. 그런 다음 명령을 실행하고 파일에 추가합니다.

    && SECONDS=0 && command.py 2>&1 | tee -a outFile.txt
    
  3. 그런 다음 종료 날짜를 가져와 파일에 추가합니다.

    && date 2>&1 | tee -a outFile.txt
    
  4. 마지막으로 경과 시간을 계산하고 파일에 추가합니다.

    && 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

관련 정보