상세 컨텐츠

본문 제목

Linux ubuntu shell script running time ( 실행시간 출력 ) 방법

Study/ShellScript

by 휀스 2014. 10. 25. 03:23

본문



Linux ubuntu shell script running time ( 실행시간 출력 ) 방법


shell script 를 사용하다보면 실행시간을 체크해야 하는 경우가 많습니다. 이때 사용할 수 있는 방법은 스크립트 첫 부분에 date 명령으로 시작 시간을 찍고 스크립트 제일 마지막 부분에 date 명령으로 종료 시간을 찍는 것 입니다.

그리고 그 두시간의 차이를 직접 계산하는 것이지요.





조금더 편하게 하자면 시작 시간과 종료시간의 차이를 script 내에서 직접 계산 하도록 하는 것 입니다.


아래 스크립트는 ls -al 의 실행 시간을 구하는 스크립트 입니다.


start_time=`date +%s.%N` 

start_time_string=`date`

###

ls -al

###

end_time=`date +%s.%N` 

end_time_string=`date`

elapsed_time=`echo "$end_time - $start_time" | bc`

htime=`echo "$elapsed_time/3600" | bc` 

mtime=`echo "($elapsed_time/60) - ($htime * 60)" | bc` 

stime=`echo "$elapsed_time - (($elapsed_time/60) * 60)" | bc` 

echo "=============================================="

echo "Start time : $start_time_string"

echo "End time   : $end_time_string"

echo "Total time : ${htime} H ${mtime} M ${stime} S"

echo "=============================================="


내용을 살펴 보자면


start_time=`date +%s.%N`

start_time_string=`date`

....

end_time=`date +%s.%N` 

end_time_string=`date`


이 부분은 실행시간을 표시할 변수와 계산할 변수에 값을 저장하는 부분입니다.

+%s.%N 부분은 현재 시간을 초.나노초 형식으로 표시해 줍니다.


elapsed_time=`echo "$end_time - $start_time" | bc`

htime=`echo "$elapsed_time/3600" | bc` 

mtime=`echo "($elapsed_time/60) - ($htime * 60)" | bc` 

stime=`echo "$elapsed_time - (($elapsed_time/60) * 60)" | bc` 


이 부분은 command line 계산기인 bc 를 이용하여 실제 실행 시간을 계산하는 부분입니다. 이미 시작 시간과 종료시간은 저장되어 있으니 단순히 시간, 분, 초 부분만 계산하여 결과를 저장하여 놓고 다음 부분에서 실행 시간을 실제로 표시합니다.


command line 계산기 bc 의 사용법


bc 는 | (pipe) 로 넘겨받은 string 을 계산하여 결과를 표시하여 줍니다.

echo "3+(4*2)^3" | bc

는 515 가 됩니다.


echo "=============================================="

echo "Start time : $start_time_string"

echo "End time   : $end_time_string"

echo "Total time : ${htime} H ${mtime} M ${stime} S"

echo "=============================================="





실행 결과 입니다.


total 160

drwxr-xr-x 20 test.test test.test  4096 Apr 15 21:03 .

drwxr-xr-x  9 root         root          4096 Mar 19 16:15 ..

-rw-------  1 test.test test.test 10528 Apr 14 14:19 .bash_history

-rw-r--r--  1 test.test test.test   220 Mar 31  2013 .bash_logout

-rw-r--r--  1 test.test test.test  4740 Mar 21 16:39 .bashrc

...

...

...

-rw-------  1 test.test test.test    53 Mar 25 22:29 .Xauthority

-rw-------  1 test.test test.test   108 Mar 25 22:29 .xsession-errors

-rw-------  1 test.test test.test   376 Mar 25 22:08 .xsession-errors.old

==============================================

Start time : Tue Apr 15 21:03:47 KST 2014

End time   : Tue Apr 15 21:03:47 KST 2014

Total time : 0 H 0 M .079788570 S

==============================================


나노초 단위까지 계산이 되니 프로그래밍 할 때 코딩 방법에 따라 얼마나 시간이 걸리는지 계산하기도 좋을것 같은데 실제로는 시스템의 부하에 따라 시간이 다르게 나오기 때문에 해당 프로그램만의 정확한 실행 시간을 측정해야 하는 부분에서는 사용하지 않는 것이 좋습니다.


이상 [Shell Script] 쉘 스크립트 실행시간 체크하는 방법에 대한 글 이였습니다.




관련글 더보기