소개
시스템 관리자로써 우리들 대부분은 시스템의 로그를 매일 확인 하게 됩니다. 만약 여러분이 10대 이상의 시스템을 가지고 있으면 이것은 정말 큰 작업입니다. 이 글은 3 가지 시스템 확인 스크립트를 제공하고 이 스크립트들은 솔라리스8,9,10 에서 이용하실 수 있습니다:
-
checkmessages스크립트는 로그들을 확인 합니다. 만약 잘못된 점이 발견 되면 스크립트는 시스템 관리자에게 e-메일을 보냅니다. 스크립트는cron을 이용해서 일주기로 실행되도록 스케줄 되어야 합니다.checkmessages스크립트의 소스코드 를 다운로드 하시기 바랍니다. 파일의 확장자를.txt대신에.sh로 변경해 주시기 바랍니다. -
checkpatch스크립트 (2008년 2월에 수정됨) 는 시스템에 적용할 수 있는 새로운 패치를 확인해 줍니다. 필자는 이것 또한 일주기로 실행할 것을 권장합니다. checkpatch 스크립트는 커뮤니티의 무료 툴인 Patch Check Advanced (PCA) 툴을 이용 합니다.checkpatch스크립트의 소스코드 를 다운로드 하시기 바랍니다. 파일의 확장자를.txt대신에.sh로 변경해 주시기 바랍니다. -
checkdisk스크립트는 예측 가능한 디스크 오류를 확인합니다. 이것 또한 일주기로 실행되어야 합니다.checkdisk스크립트의 소스코드 를 다운로드 하시기 바랍니다. 파일의 확장자를.txt대신에.sh로 변경해 주시기 바랍니다.
checkmessages 스크립트
checkmessages
syslog 에 의해 생성되는 각각의 메세지에서 5번째와 10번째 문자는 메세지가 수신된 날짜를 나타 내며 이것은 <mmm dd> 의 포맷으로, 예를 들어 Nov 13 의 형태가 됩니다. 그러므로 다음의 스크립트 라인은 오직 오늘 날짜의 메세지 만을 확인 하고 다른 날짜의 메세지는 확인하지 않습니다.
grep \"^`date|cut -c5-10`\" /var/adm/messages
스크립트는 severity 레벨이 "warning" 이상인 메세지를 확인 합니다. 몇몇 메세지들은 잘 알려진 문제이므로 무시될 수 있습니다. 예를 들어 솔라리스 볼륨 매니저를 사용하는 시스템에서 forceload of misc/md_trans failed 라는 메세지가 자주 나타 납니다. 다음의 스크립트 라인이 이러한 메세지와 No proxy found 메세지를 무시하도록 합니다. 여러분은 필요에 따라 다른 메세지들을 추가시키실 수 있습니다.
FILTER="| grep -v \"forceload of misc/md_trans failed\"" FILTER="$FILTER | grep -v \"No proxy found\""
if eval "$GREP" > /tmp/seriousmessages.txt 라인에서 스크립트의 eval 커맨드는 꼭 필요 합니다. 날짜가 한자리 수일 때, 예를 들어 Nov. 9 일때 $GREP 출력결과는 다음과 같을 것입니다:
grep "^Nov 9" /var/adm/messages
이 출력결과는 오직 "Nov" 와 "9," 사이에 하나의 공간만 존재 합니다. 그러나 /var/adm/messages 에서는 두개의 공간이 존재 합니다. 이것은 어떠한 메세지도 찾아지지 않을 것임을 뜻합니다. eval 을 추가해서 이 문제를 해결해 보도록 하겠습니다.
최종적으로 여러분은 cron 을 이용해서 스크립트가 밤에 돌 수 있도록 합니다. 예를 들어 아래는 스크립트가 자정이 되기 1분전에 실행 하도록 스케줄링 합니다:
59 23 * * * /home/<username>/bin/checkmessages
아마도 여러분의 시스템은 메세지들 다른 파일에 로깅 할 수도 있습니다. 그렇다면 /etc/syslog.conf 파일을 확인해서 스크립트를 여러분의 필요에 맞게 고쳐주어야 합니다.
checkpatch 스크립트
checkpatch
checkpatch 스크립트는 Martin Paul 의 Patch Check Advanced (PCA) 툴: http://www.par.univie.ac.at/solaris/pca/ 을 이용합니다. 여러분은 여기서 무료로 다운로드 하실 수 있습니다.
몇몇 새로운 패치들은 여러분의 시스템과 관련이 없을 수도 있습니다. 만약 다시한번 알림을 보길 원치 않는다면 스크립트에 아래와 같은 라인을 입력하면 됩니다:
IGNORE="$IGNORE --ignore 112925" IGNORE="$IGNORE --ignore 112960"
시스템을 패치한 다음에 여러분은 스크립트에 해당 라인을 지워야 새로운 패치가 나왔을때 공지를 다시 받으실 수 있습니다.
checkpatch 스크립트는 보안 패치를 검사 합니다. 그러나 여러분은 스크립트를 missings 에서 missing 으로 수정해서 사용 가능한 전체 패치에 대한 정보를 얻으실 수도 있습니다.
다시한번 말해서 이 스크립트는 일주기로 실행 하시기 바랍니다.
checkdisk 스크립트
checkdisk
비록 모든 디스크 오류가 /var/adm/messages 에 저장되지만 여전히 checkdisk 스크립트를 이용해서 디스크 오류 예측 메세지를 살펴볼 필요가 있습니다. 이전에 언급했던 대로 일주기로 실행 하시기 바랍니다.
이 글의 영문 원본은
Scripts for Automating System Checks
에서 보실 수 있습니다.
"관리자코너" 카테고리의 다른 글
- 맥북 13인치 코어 2 듀오에 솔라리스10 설치하기 (댓글 2개 / 트랙백 0개) 2008/06/16
- 썬 버추얼 데스크탑 커넥터 1.0(베타)을 사용한 VDI 데모 구축 (댓글 0개 / 트랙백 0개) 2008/01/23
- 솔라리스 Tip Of The Week:SMF (댓글 0개 / 트랙백 0개) 2009/01/23
- GlassFish 를 프로덕션 환경으로 설치하기 (댓글 0개 / 트랙백 0개) 2009/11/23
- 솔라리스 레디 애플리케이션 및 솔루션 (댓글 0개 / 트랙백 0개) 2008/03/13
- 솔라리스 10 에서 TCP Wrapper 사용하기 (댓글 1개 / 트랙백 0개) 2006/01/23
- 시만텍 베리타스 넷백업과 ZFS 스냅샷 통합하기 (댓글 0개 / 트랙백 0개) 2009/07/17
- ZFS, 썬의 최신 파일 시스템(Part 1: 스토리지 무결성, 보안성 및 확장성) (댓글 3개 / 트랙백 1개) 2006/11/23
- USB로 부팅하기 - 설치 (댓글 31개 / 트랙백 1개) 2007/08/20
- 파일과 디렉토리를 안전하게 옮기거나 카피 할 수 있는 방법 (댓글 6개 / 트랙백 0개) 2007/04/23
댓글을 달아 주세요