프로그래밍/Linux

리눅스에서 오래된 로그 주기적으로 정리하기

kugancity 2016. 12. 25. 17:42
반응형



리눅스에서 cron작업을 하다보면 로그가 쌓일 경우가 있다. 


단기간에 확인이 필요한 로그가 아니면 서버 저장공간을 아끼기 위해서

오래된 로그들은 삭제하거나 백업 폴더로 옮기는 스크립트를 걸어두는 것이 좋다.



일단 find로 오래된 로그를 찾아보자.  

find는 특정 조건을 찾는 명령어로 기본구문은 아래와 같다.  


find [options] [path] [expression]


expression 중에 mtime 이라는 옵션을 사용하면 

 수정된 날짜를 참조해서 (로그일 경우 로그 생성 날짜) 파일을 찾을 수 있다. 

mtime +7 이면 수정날짜가 7일은 지난 파일들을 의미하고

mtime -7 이면 수정날짜가 7일 이내인 최신 파일들을 의미한다. 



exec 옵션을 사용하면 위 조건으로 찾은 파일들로 어떤 명령을 내릴지 지정할 수 있다. 

{}는 앞에서 찾은 파일 이름들로 대체되고 ;을 만날때까지의 명령을 수행한다. 

마지막의 ;는 \로 escape 되어야 한다. 



아래 명령어를 기존 운영 스크립트에 걸어두었다. 

이제  오래된 로그들은 주기적으로 정리가 되어 좀 더 깔끔하게 서버 이용이 가능해졌다 : ) 



#!/bin/sh


# 삭제 할 경우 

find /home/apache/log/ -mtime +7 -name \* -exec rm {} \;


# 백업 폴더로 이동할 경우 

find /home/apache/log/ -mtime +7 -name \* -exec mv {} /mnt/backup/logbackup/ \;











728x90
반응형