RadarURL
Skip to content
조회 수 668 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

소개


여러 프로그램을 설치하다보면 log가 계속 쌓여서 높은 용량을 차지 할 때가 있다.

이를 방지하기 위해 리눅스 자체에서 logrotate 라는 기능을 지원하고 있다.

logrotate를 사용하면 하나의 로그를 사용해서 축적하다가, 일정 주기가 되면 축척된 로그를 다른 이름으로 변경하여 저장하고, 빈 공백에서 다시 로그를 이어 기록 하도록 만들 수 있다.


예를들면, web.log라는 파일이 계속 축척되다가, web.log.1 이라는 파일로 백업되고, 계속해서 web.log.2 web.log.3 등으로 백업된다.

따라서 항상 최신 로그는 web.log에 기록되면 과거의 기록은 점점 숫자가 높아지면서 백업된다.

web.log

web.log.1

web.log.2

web.log.3

...

처럼 여러개의 백업도 가능하다.



사용법



간단한 예제를 통해 logrotate 사용법을 설명하겠다.


우선 10초마다 현재 시간을 log에 기록하는 아주 간단한 쉘을 만든 후에 시간이 기록된 log를 logrotate를 사용하여 관리해 보도록 하겠다.


1. date.sh 만들기


vi /home/bin/date.sh 


date.sh 파일에 10초마다 logrotate.log에 기록되도록 log를 만든다.

#!/bin/bash


for((;;))

do

    sleep 10

    date >> /home/bin/logrotate.log

done 




2. date.sh 권한 변경 및 실행


chmod 750 /home/bin/date.sh

/home/bin/date.sh




3. logrotate 만들기


logrotate는 /etc/logrotate.d 디렉토리 안에 설정파일을 이용하여 rotate를 실행한다.

여기서 각 로그 마다 파일을 만들어주면 되는데, 여기서는 logtest라고 만들었다.


cd /etc/logrotate.d

vi logtest 



 /home/bin/logrotate.log{ 

     daily   

         rotate 1  

         compress 

         delaycompress

         copytruncate 

         notifempty    

         missingok    

         create 640 root root 

 }


파일을 저장한다.




4. logrotate 테스트


3번 과정으로 시간이 기록되는 logrotate.log의 logrotate의 설정은 끝났다.

/home/bin디렉토리에 생기는 logrotate.log가 logrotate.log.1으로 백업되고 계속해서 logrotate.log가 기록되는지 확인하기 위해 아래처럼 logrotate에 강제로 명령어를 사용하여 rotate를 시키도록 해본다.



logrotate -f /etc/logrotate.d/logtest 


/home/bin에 기록되던 logrotate.log가 logrotate.log.1으로 백업되었고, 계속해서 logrotate.log가 생겨 현재 시간을 기록하는 log를 볼 수 있을 것이다.



간단한 logrotate 설정 설명



 /home/bin/logrotate.log{     # log를 rotate할 log 경로를 적어준다.

     daily    # 매일 log를 rotate 한다.

         rotate 1    # logrotate.log를 백업하는 개수를 정한다. 1값은 오로지 logrotate.log.1만 생긴다. 4로 하면 logrotate.log.4까지 생긴다

         compress    # log를 압축한다.

         delaycompress    # log 압축시 백업한 로그를 재 백업할때 압축한다.

         copytruncate    # log.1처럼 log를 나누도록 한다.

         notifempty    # 빈 log인 경우 rotate를 하지 않도록 한다.

         missingok    # log가 없는 경우 에러 없이 다음 rotate로 넘어간다.

         create 640 root root    # log 만들시 권한을 설정해준다.

 }



마침



logrotate를 사용하면 일정 시간 뒤에는 log를 덮어쓰므로 누적되는 용량을 예방 할 수 있다.

logrotate에 대해 조금 더 알고 싶다면 아래 사이트를 참조하도록 한다.

http://linuxers.org/howto/howto-use-logrotate-manage-log-files


출처 : http://sacstory.tistory.com/entry/Debian-로그-관리

?

List of Articles
번호 제목 글쓴이 날짜 조회 수
142 [Linux/Unix] 심볼릭 링크(ln) 만들기 및 확인/삭제 JAESOO 2016.02.19 639
141 AIX - tar,gzip 명령어 (한번에 압축하기) - Linux참고 JAESOO 2016.02.02 615
140 AIX에서 논리적 볼륨 크기 확장 JAESOO 2016.01.28 510
139 [AIX] Filesystem 사이즈 조절하기 JAESOO 2016.01.23 510
138 cpulimit - cpu 사용량을 정한다. JAESOO 2015.08.24 554
137 좀비 프로세스 찾기, 죽이기 JAESOO 2015.05.27 879
136 SetUid와 SetGid JAESOO 2015.05.27 545
135 특별한 퍼미션 setuid setgid sticky bit JAESOO 2015.05.27 533
134 SETUID, SETGID, Sticky Bit JAESOO 2015.05.27 952
133 Tomcat 무분별하게 catalina.out 크기 커지는것 막기 JAESOO 2015.04.13 3129
132 톰캣(Tomcat) 실시간 로그보기 JAESOO 2015.04.13 1043
131 ls - 파일리스팅 (접근, 수정, 속성변경 시간별 정렬 등) JAESOO 2015.02.24 749
130 리눅스(Linux)에서 하위 디렉토리까지 파일 찾기, 찾아서 지우기 JAESOO 2015.02.24 1199
129 아파치서버 동시접속자수에 따른 메모리 산정 (대략) JAESOO 2015.01.13 1588
» 데비안 리눅스 로그 관리 JAESOO 2015.01.13 668
127 리눅스 로그파일관리 (logrotate) JAESOO 2015.01.13 703
126 리눅스 logrotate를 활용한 로그 관리 (compress, lotate) JAESOO 2015.01.13 1138
125 CentOS5 MRTG서버 트래픽 모니터링 JAESOO 2014.12.26 912
124 SNMP 를 설정해 보자 (CentOS 5.6) JAESOO 2014.12.26 1252
123 [CentOS] MRTG를 설치하여 서버의 대역폭을 기록하자 JAESOO 2014.12.26 801
Board Pagination Prev 1 2 3 4 5 6 7 8 9 Next
/ 9

PageViews   Today : 134 Yesterday : 2394 Total : 21713792  /  Counter Status   Today : 117 Yesterday : 1232 Total : 1142259

Edited by JAESOO

sketchbook5, 스케치북5

sketchbook5, 스케치북5

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소