강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

레벨265-2 : 쉘프로그램내에서 사용되는 로그기록기 logger의 실사용예

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

레벨265-2 : 쉘프로그램내에서 사용되는 로그기록기 logger 실사용예

 

다음은 logger명령어가 쉘프로그램 내에서 실제로 어떻게 사용이 되는가를 보여드리기 위하여 간단히 만든 쉘프로그램입니다.

 

, 쉘프로그램은 아파치웹서버가 다운되었을 경우에 자동으로 재시작시켜주는 것으로서 재시작을 시킨 다음에는 " Apache Web Server Restarted..."라는 메시지를 /var/log/messages 기록하게 됩니다. 이때 메시지를 기록하도록 하기 위하여 logger명령문을 쉘프로그램내에서 사용한 것입니다.

 

아래는 쉘프로그램의 내용입니다. 쉘프로그램은 책의 while명령어편과 nohup명령어편에서 설명 드렸던 예를 logger설명에 맞도록 조금 수정한 것입니다.  아래의 쉘프로그램은 while문을 사용하여 무한루프를 돌게 하고 5초에 한번씩 아파치의 데몬갯수를 체크하여 아파치프로세스갯수가 1 이하일 경우에 아파치웹서버가 죽었다고 판단하고 아파치를 자동 재실행하는 간단한 쉘프로그램입니다.

 

[root@command root]# cat logger.sh

#!/bin/bash

 

while (:)

do

httpdcount=`ps -ef | grep httpd | wc -l`

 

if [ $httpdcount -le "1" ]

 

then

 

  echo "Apache is restarted."

  echo $httpdcount

  /etc/rc.d/init.d/httpd restart

  logger " Apache web server is restarted..."

fi

sleep 5

 

done

[root@command root]#

 

위의 쉘프로그램내의 logger행을 보시기 바랍니다.  , 아파치가 다운되었을 경우에 “/etc/rc.d/init.d/httpd restart”라는 아파치 재시작명령어가 수행된 후에 logger명령으로 /var/log/messages(시스템 로그파일) “Apache Web Server Restarted...”라는 메시지를 남기게 됩니다.

, 그럼 쉘프로그램을 아래와 같이 백그라운드로 실행해 두겠습니다.

 

[root@command root]# ./logger.sh &

[1] 2324

[root@command root]#

 

그리고 killall명령어로 현재 실행되어 있는 아파치프로세스(httpd) 모두 죽였습니다. 아파치웹서버가 다운되는 상황을 연출하기 위한 것입니다.

 

[root@command root]# killall httpd

[root@command root]#


위와 같이 아파치웹서버가 다운되었을 경우에 위에서 실행해둔 프로세스(logger.sh) 의해서 아파치를 자동 재시작합니다.

 

 그리고 /var/log/messages파일에는 아래와 같이 위의 쉘프로그램내에서 지정해둔  Apache Web Server Restarted...라는 메시지가 기록됩니다. 아래는 /var/log/messages 파일에 기록된 메시지를 확인한 것입니다.

 

[root@command log]# tail -f messages


Mar 26 17:27:39 command root: Apache web server is restarted...

 

 

이상과 같이 logger 설명을 마치면서 말씀 드립니다. 설명을 보신 바와 같이 logger 주된 용도는 주로 쉘프로그램이나 C같은 프로그램 내에서 특정 상황이나 조건에 맞는 상황이 발생하였을 경우에 그에 대한 로그를 시스템로그파일(/var/log/messages) 기록하기 위한 것입니다. 

 

눈치 빠르신 분들이라면 ~~!!”하고 여러 가지 생각되는 것이 있을 것입니다. , 쉘프로그램으로 시스템관리 프로그램을 개발하거나 간단한 관리 프로그램 등을 만들 때에 위와 같이 활용하면 매우, 정말, Coooool…하게 유용하겠구나 라고 말입니다. 

 

이제 logger명령어에 대한 필자의 역할은 다하였으므로 유능한 서버관리자로 가는 길에 logger 활용하는 것은 여러분들의 몫으로 남겨 두겠습니다.

 

 

 

 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,037 명
  • 현재 강좌수 :  35,810 개
  • 현재 접속자 :  96 명