평소에 자주 파일 시스템이 커져서(예를 들어 95% 이상) 문제가 된다. 
어떻게 해야 되나?

간단히 말하면 아래 3가지 Process로 행동하면 된다. 
  1. 일단 무슨 파일이 큰지 확인한다.
  2. 파일 사이즈를 줄인다 
  3. 디스크를 늘린다 

1. 일단 무슨 파일이 큰지 확인한다.
   . 특정 디렉토리 이하 전체에서 큰 넘들을 찾고 싶다면

[se_olsps2:/log/smlog ] du -akd /log |sort -nr |more
10700908        /log
10700339        /log/smlog
905624  /log/smlog/authevent.log.090225.gz
903808  /log/smlog/authevent.log.090310.gz
865248  /log/smlog/authevent.log.090107.gz
694864  /log/smlog/authevent.log.20090325.gz
225880  /log/smlog/azevent.log.13Feb2009_16_15_44_1.gz
164624  /log/smlog/azevent.log.31Jan2009_15_07_06_36.gz
164584  /log/smlog/azevent.log.25Jan2009_12_38_36_32.gz
162000  /log/smlog/azevent.log.29Jan2009_01_05_33_34.gz
160976  /log/smlog/azevent.log.27Jan2009_20_00_21_33.gz
158656  /log/smlog/azevent.log.30Jan2009_11_16_05_35.gz
158456  /log/smlog/azevent.log.11Feb2009_18_01_55_44.gz

    . 특정 디렉토리 이내에서만 확인하자면

[se_olsps2:/log/smlog ] ls -lR|sort -nr
총 4442
총 21396438
총 0
총 0
drwxrwx--x   2 sdsdev   ecrm         512  3월 27일  07:16 authftp
drwxr-xr-x   2 root     other      22528 2008년  9월 25일 authlog_bak
drwxr-xr-x   2 root     other      15360 2008년  2월 23일 azlog_bak
.:
./azlog_bak:
./authlog_bak:
./authftp:
...
-rw-r--r--   1 sdsutil  ecrm     926888369  2월 24일  13:46 authevent.log.090225.gz
-rw-r--r--   1 sdsutil  ecrm     925031154  3월  6일  15:03 authevent.log.090310.gz


. 물론 각각의 명령어 (ls, du, sort) 옵션들을 (-akd, -nr) 잘 알아두면 좋다.
. .profile에 등록하면 다음에 쓸 때 편하다. (dusort 등)
. Window의 경우 간단히 검색 옵션에서 일정 크기 이상을 지정하면 된다. 


2. 파일 사이즈를 줄인다. 
    . 압축을 한다. 
      물론 자동으로 압축 스크립트를 만들어서 cron에 등록하는게 좋다.
 
   . Unix
       : 일정 크기 이상이 되면 혹은 날짜가 지난 파일은 압축    
         이때 반드시 기존 파일은 백업을 받아둔다.
 
         ex) 05 09 * * * cp /log/smlog/authevent.log /log/smlog/authevent.log.`date "+%y%m%d"`
                 : 기존 파일을 날짜 이름으로 백업
               06 09 * * * cp /dev/null /log/smlog/authevent.log 
                 : 파일 사이즈를 '0'으로 만든다. 
                   윈도우도 같은 이름의 파일을 사이즈 '0'으로 만들어서 카피하면 된다.
    
         ex) 00 06 * * * gzip `find /log/smlog/authevent.log.* -mtime +14  -a ! -name "*.gz"`                     
               00 06 * * * gzip `find /log/smlog/authevent.log.* -size 100000m -a ! -name "*.gz"`                   
                                gzip `find /log/smlog/authftp/authevent* -size +10000  -a ! -name "*.gz"`

    . 로그 레벨 등을 낮추어서 입력 값 자체를 줄인다. 
       (중요하다. 로그 관리 정책 혹은 개발자 문의 )
    . (?) Window는 어떻게 하면 될까?
        웹로그의 경우 매일매일 주기로 로그 파일을 생성하고 
        생성된 로그를 하루가 지나면 자동으로 백업할 수 없을까?
        (IIS, 아파치 등 동일하게)

@echo off
setlocal

; %date%에서 모든 하이픈(-)을 지워 버림
set date2=%date:-=%

; %time%에서 모든 공백을 0으로 고침 (시각 부분이 zerofill된 게 아니라 그냥 right justify 되어 있어서...)
set time2=%time: =0%

; %time2%의 시각 부분과 분 부분만 잘라 냄
set time3=%time2:~0,2%%time2:~3,2%

; 이제 두 변수를 이어 붙여서 디렉토리를 만들면 땡!
mkdir %date2%_%time3%

endlocal

echo on

배치 파일은 의외로 강력한 도구입니다. :)



'이 책 읽어 보세요' 카테고리의 다른 글

5월 25일  (0) 2009.05.25
Solaris - Network 설정  (0) 2009.05.04
Unix 시스템 공부 하는 법  (0) 2009.02.25
업무 관련 Question LIst  (0) 2009.01.05
사용 중인 프리웨어  (0) 2009.01.04
//