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 리눅스(Linux) 디렉토리 구조 JAESOO 2016.10.20 602
161 ssh서버가 비밀번호를 거부했습니다. 다시 시도하십시오. JAESOO 2016.08.26 709
160 [리눅스] IP 설정 변경 하기 JAESOO 2016.08.26 717
159 리눅스 설치후 초기설정해야 할 것들 [2] JAESOO 2016.07.13 675
158 리눅스 설치후 초기설정해야 할 것들 [1] JAESOO 2016.07.13 702
157 쉘 프로그래밍을 이용한 시스템 관리 기법 JAESOO 2016.05.12 540
156 AIX 자주 쓰이는 관리 명령 모음 JAESOO 2016.05.12 554
155 AIX 시스템상의 core, SMT(Simultaneous Multi Threading) 수 확인하기 JAESOO 2016.05.12 604
154 리눅스 호스트명 변경 JAESOO 2016.05.11 439
153 AIX 서버 기초 JAESOO 2016.05.11 560
152 AIX Admin Study 교육 자료 JAESOO 2016.05.11 547
151 성능 엔지니어링 대한 접근 방법 (Performance tuning) JAESOO 2016.05.05 489
150 [AIX] 파일시스템 관리 (du, df) JAESOO 2016.05.04 552
149 IBM AIX Admin (사용자 DISK 관리) JAESOO 2016.05.04 504
148 [UNIX] 유닉스 기본명령어 JAESOO 2016.05.04 455
147 [AIX] 파일시스템 용량 늘리기 JAESOO 2016.05.04 558
146 유닉스 상에서 ls 출력물을 MB 단위로 출력해주는 옵션 JAESOO 2016.05.04 446
145 ls 명령시 날짜 전체가 보이도록 하기 JAESOO 2016.05.02 438
144 리눅스 logrotate 에서 로그파일 강제로 rotate 시키기 JAESOO 2016.03.31 663
143 리눅스 시간 맞추기 : Time Server와 Sync (rdate, date) JAESOO 2016.03.19 733
Board Pagination Prev 1 2 3 4 5 6 7 8 9 Next
/ 9

PageViews   Today : 6136 Yesterday : 5037 Total : 21962188  /  Counter Status   Today : 5933 Yesterday : 4602 Total : 1188656

Edited by JAESOO

sketchbook5, 스케치북5

sketchbook5, 스케치북5

나눔글꼴 설치 안내


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

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

설치 취소