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] 쉘 스크립트 실행시간 체크하는 방법에 대한 글 이였습니다.
shell script (bash) 에서 file 유무 체크하는 방법과 파일 존재 검사 옵션 (file exist check) (0) | 2014.09.18 |
---|