728x90
반응형

로그파일이나 백업된 파일등에 대해

 

일정주기가 지난 파일을 백업 또는 삭제하도록 하는 방법이다.

 

간단한 명령어로 쉘을 만들어 crontab 에 등록해놓으면 된다.

 

 

예를들어 /WAS/Log 디렉토리에 계속해서 쌓이는 로그파일들 중

 

한달이 지난 파일을 자동으로 삭제하려는 경우

 

find /WAS/Log -type f -name "*.log" -mtime +30 -exec rm -ref {} \; > rmlog`date +%y%m%d`

 

이 중 rm 의 옵션으로 사용된 -ref 중 e 옵션은 aix기반의 rm에서 지원되는 프린트 명령이다.

 

위의 쉘을 구동하면

 

rm 으로 삭제하려는 대상은

 

/WAS/Log 디렉토리 이하에 존재하는 파일만을 검색하며

 

그 중 파일명이 .log로 끝나는 파일을 검색하고

 

이 중 수정된지 30일이 지난 파일이 된다.

 

 

즉, 30일 이상된 로그파일을 삭제하게 되며

 

삭제된 로그를 rmlog080930 식의 파일명으로 기록해놓는다.

 

crontab에 스케쥴 주기를 매일 특정시간으로 정해놓으면 그 시간대에 작업을 진행시킬 수 있다.

 

삭제가 아니라 백업을 하려는 경우에는

 

rm 옵션대신 백업을 위한 명령어를 사용하면 된다.

 

 

예를 들자면

 

find /WAS/Log -type f -name "*.log" -mtime +30` > FL

 

tar -cvf BakLog.tar -L FL > BakLog && rm -ref `cat FL`

 

텍스트는 압축시에 압축률이 매우 높으므로 압축해서 보관하는 것이 더 좋다.

 

compress BakLog.tar

 

 

이것을 기본틀로 find 옵션을 더 세밀하게 사용하여 이용하거나

 

cpio, gzip등을 이용하여 작업하는 것은

 

각 엔지니어들이 선호하는 방식의 차이이므로 설명 생략

 

 

기타 관련된 질문은 쪽지가 아니라 리플로 부탁드립니다.

 

제가 쪽지확인을 잘 안해서요.

 

그리고 스팸쪽지가 많다보니 그냥 넘어가는 경우도 종종있습니다.

 

그럼 즐거운 주말되시길

728x90
반응형
블로그 이미지

nineDeveloper

안녕하세요 현직 개발자 입니다 ~ 빠르게 변화하는 세상에 뒤쳐지지 않도록 우리모두 열심히 공부합시다 ~! 개발공부는 넘나 재미있는 것~!

,