2010. 5. 23. 16:46

파일 점검 프로그램

 1 #!/bin/sh
 2 # # crontab -e
 3 # Min Hour Day Mon Week CMD
 4 # 0 8 * * * /root/shell/check_file.sh
 5 ##
 6 # cat /root/shell/test/.mail_contents_OK.txt
 7 # Have a Good Day !!!!!
 8 ##
 9 # cat /root/shell/test/check_file_list.txt
10 # .....
11 # /etc/passwd
12 # /etc/group
13 # /etc/hosts
14 # .....
15
16 F_LIST=/root/shell/test/file_list.txt           # check file list
17 T_FILE=/var/tmp/.tmp1                           # tempory file
18 F_RESULT=/root/shell/test/result.`date '+%m%d'` # check result for report file
19 #EMAIL=root # admin email : root@example.com
20
21 cp /dev/null $F_RESULT                          # 결과파일 초기화
22
23 for F_NAME in `cat $F_LIST`                     # 점검해야 하는 파일 목록 읽기
24 do
25     if [ -f $F_NAME.orig ] ; then               # 백업파일 존재 유무 확인
26         diff $F_NAME $F_NAME.orig > $T_FILE     # 원본파일<-->백업파일 비교
27         if [ -s $T_FILE ] ; then
28             echo "$F_NAME [ WARN ]" >> $F_RESULT
29         else
30             echo "$F_NAME [ OK ]" >> $F_RESULT
31         fi
32     else
33     cp $F_NAME $F_NAME.orig
34     fi
35 done
36
37 if grep WARN $F_RESULT > /dev/null 2>&1 ; then
38 # mailx -s "Critical Satus. Check Files" $EMAIL < $F_RESULT
39     echo "WARNNING"
40 else
41 # mailx -s "OK" $EMAIL < $F_RESULT
42     echo "OK"
43 fi
44 # rm T_FILE # tempory file delete
45


점검할 파일을 file_list.txt 파일에 정의하고 이 파일들에 대해 백업파일을 만든후 하루에 한번씩
원본 파일과 백업파일의 내용이 같은지를 점검하는 프로그램이다. 매일 아침마다 리포트 형태로 출력
하여 출근시에 보고를 받을수 있도록 메일을 보내는 형식으로 되어져 있다.



원본파일/백업 동기화

 1 #!/bin/ksh
 2 #
 3 # Reference : /root/shell/check_file.sh
 4 #
 5 F_RESULT=/root/shell/test/result.`date '+%m%d'`
 6 T_FILE=/var/tmp/.tmp.$$
 7 awk '/WARN/ { print $1 }' $F_RESULT > $T_FILE
 8 for FILENAME in `cat $T_FILE`
 9 do
10     cp $FILENAME $FILENAME.orig
11 done
 
만약 이상이 있어서 점검이 끝나면 관리자가 직접 OK_check.sh 스크립트를 동작시켜 원본파일과 백업
파일을 동기화시켜 줘야 한다.





'Linux > ShellScript' 카테고리의 다른 글

ANSI Escape(ESC) character  (0) 2010.11.02
쉘내부 명령어  (0) 2010.10.28
[script]directory tree로 보여주기  (0) 2010.05.29
[if연산] test 관련 연산자  (0) 2010.05.23
쉘(Shell) 환경  (0) 2010.05.16
Posted by devanix