강좌 & 팁
간혹 특정 쉘스크립트를 만들어두고, 이 스크립트가 실행될 경우를 로그로 남겨야할 때가 있습니다.
예를 들어, 보드가 어떤 이유에서든 재부팅이 될 경우, 언제 재부팅이 되었는지를 로그로 남기고자 한다면,
부팅이 되자마자 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 라는 문자가 저장 됩니다.