RadarURL
Skip to content
조회 수 689 추천 수 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
번호 제목 글쓴이 날짜 조회 수
162 CC 및 GCC 컴파일러 설치와 환경 설정 처누 2004.06.09 16696
161 리눅스 rawrite 유틸리티 사용하기 JaeSoo 2006.01.03 36369
160 리눅스 외부 드라이버 로딩을 위한 dd 명령어 사용하기 JaeSoo 2006.01.03 15258
159 Linux서버에 오라클10g 설치하기 JaeSoo 2007.04.15 8892
158 Tomcat을 버젼별로 실행하기 JaeSoo 2007.06.08 7592
157 리눅스 파일 시스템에서 숨김 속성 적용 방법 JaeSoo 2010.02.08 10952
156 페도라12 yum(rpm)으로 APM 설치 (수호신패치 포함) JaeSoo 2011.06.08 12310
155 Micosoft Windows에서 리눅스를 coLinux!! JaeSoo 2012.11.30 5544
154 SULinux 2.0 설치 가이드 JaeSoo 2012.12.06 65157
153 SULinux 2.0 APM 인스톨 툴 JaeSoo 2012.12.06 5576
152 Apache/FastCGI JaeSoo 2013.03.08 5915
151 nobody 디렉토리 삭제가 안될 때 JaeSoo 2013.04.01 6941
150 리눅스 tar, gz 압축 및 해제 JaeSoo 2014.03.25 1326
149 Linux FTP 설정, vsftpd 설정 JaeSoo 2014.03.25 1288
148 vsftpd 실행하기 JaeSoo 2014.03.25 870
147 vsFTP ftp로 root 계정 접속 JaeSoo 2014.03.25 1098
146 레드햇,우분투 리눅스(Linux) 다운로드 JaeSoo 2014.03.27 1068
145 touch (파일의 날짜시간정보를 변경) JAESOO 2014.04.29 1371
144 vsftp root로 접속하기 JAESOO 2014.04.29 1369
143 스트러츠와 스프링의 비교 JAESOO 2014.05.09 1414
Board Pagination Prev 1 2 3 4 5 6 7 8 9 Next
/ 9

PageViews   Today : 8105 Yesterday : 5037 Total : 21964157  /  Counter Status   Today : 7821 Yesterday : 4602 Total : 1190544

Edited by JAESOO

sketchbook5, 스케치북5

sketchbook5, 스케치북5

나눔글꼴 설치 안내


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

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

설치 취소