간혹 특정 쉘스크립트를 만들어두고, 이 스크립트가 실행될 경우를 로그로 남겨야할 때가 있습니다.

예를 들어, 보드가 어떤 이유에서든 재부팅이 될 경우, 언제 재부팅이 되었는지를 로그로 남기고자 한다면,

부팅이 되자마자 run.sh 이라는 쉴을 실행시키고, 그안에서 현재 시간을 로그파일 안에 저장하면 될 것입니다.


참고로 FALINUX 의 EZ-boot 는 커널 부팅이 완료되면 즉시 실행할 프로그램 또는 쉘스크립트를 설정할 수 있으며,

사용법은 아래와 같이 부트로더의 set 매뉴의 10번 항목에 실행할 특정 쉘또는 프로그램의 절대주소를 넣어주면 됩니다.

 7) ram disk    file name   : ramdisk-1.14-24M_di.gz

   8) boot loader file name   : ezboot3.s5pv210

   9) logo image  file name   : 

  10) auto execute full name  : /app/run.sh

  11) autoboot wait time      : 3

  12) watchdog  (sec, off=0)  : 0

  13) copy ramdisk [Y/N]      : N 

-> 부트로더 set 매뉴중 일부


실제로 쓰고자 하는 내용과 상관 없이 부트로더를 기능을 설명 했군요.

다시 본론으로 들어와서.. 이처럼 부팅시마다 실행되는 run.sh 스크립트에서 아래와 같이 시간을 기록 하도록

해두면 됩니다.


---------------------------------------------

#!/bin/sh

 

LOG=/tmp/run.log

reboot_time=`date`

echo "reboot time - $reboot_time" >> ${LOG}

---------------------------------------------

아주 간단 하죠.

 

이 스크립트는 실행이되면 /tmp/run.log 라는 파일에 실행될때마다 다음줄에 시간을 기록 하게 됩니다.

 

팁 `'`'`'`'`'`'

 팁 옆에 쓰인 기호들을 보면 ' 와 ` 가 있습니다.

위 쉘스크립트 예제를 보면 `date` 가 있는데 이놈은 그냥 흔히 말하는 싱글코테이션이( Apostrophe (어퍼스트로피)) 가  아닙니다.

키보드의 숫자 1 옆에 (not ~) 과 함께 있는 Grave (그레이브) 입니다.

한국어로는 강세표 라고 합니다.

 

하여튼. 위 쉘에서 `date` 를 그레이브로 감싸지 않고 어퍼스트로피로 감싸 'date' 라고 쓰면.

시간 값에 date 라는 문자가 저장 됩니다.