링크 ux 로그 절단 logrotate

로그 파일 은 시스템 에서 발생 하 는 사건 에 대한 유용 한 정 보 를 포함 하고 있 으 며, 장벽 을 제거 하 는 과정 이나 시스템 성능 분석 에 자주 사용 된다.바 쁜 서버 에 대해 서 는 로그 파일 크기 가 빠르게 증가 하고 서버 가 디스크 공간 을 빨리 소모 하 는 것 이 문제 다.그 밖 에 하나의 거대 로그 파일 을 처리 하 는 것 도 종종 까다 로 운 일이 다.
logrotate 는 로그 파일 을 자동 으로 차단 하거나 압축 하거나 삭제 할 수 있 는 유용 한 도구 입 니 다.예 를 들 어 logrotate 를 설정 하여/var/log/foo 로그 파일 을 30 일 마다 돌아 가면 서 6 개 월 이 넘 는 로 그 를 삭제 할 수 있 습 니 다.설정 이 끝 난 후, logrotate 의 운영 은 완전히 자동화 되 었 으 며, 더 이상 관여 할 필요 가 없습니다.또한, 오래된 로 그 는 이메일 로 보 낼 수 있 지만, 이 옵션 은 본 튜 토리 얼 의 토론 범 위 를 초과 합 니 다.
주류 Linux 발행 판 에는 기본적으로 logrotate 패키지 가 설치 되 어 있 습 니 다. 어떤 이유 로 logrotate 가 나타 나 지 않 았 다 면 apt - get 이나 yum 명령 으로 설치 할 수 있 습 니 다.
Debian 이나 Ubuntu 에서:

  
  
  
  
  1. # apt-get install logrotate cron

Fedora, CentOS 또는 RHEL 에서:

  
  
  
  
  1. # yum install logrotate crontabs

logrotate 의 설정 파일 은/etc/logrotate. conf 로 수정 할 필요 가 없습니다.로그 파일 의 순환 은 독립 된 설정 파일 에 설정 되 어 있 습 니 다./etc/logrotate. d/디 렉 터 리 에 놓 여 있 습 니 다.
예시 1
첫 번 째 사례 에서 10MB 로그 파일/var/log/log - file 을 만 들 것 입 니 다.로그 파일 을 관리 하기 위해 logrotate 를 사용 하 는 방법 을 보 여 줍 니 다.
로그 파일 을 만 드 는 것 부터 시작 해서 10MB 의 무 작위 비트 스 트림 데 이 터 를 입력 합 니 다.

  
  
  
  
  1. # touch /var/log/log-file
  2. # head -c 10M < /dev/urandom > /var/log/log-file

현재 로그 파일 이 준비 되 어 있 기 때문에 로그 파일 을 따라 로그 rotate 를 설정 할 것 입 니 다.이 파일 에 프로필 을 만 듭 니 다.

  
  
  
  
  1. # vim /etc/logrotate.d/log-file

  
  
  
  
  1. /var/log/log-file {
  2. monthly
  3. rotate 5
  4. compress
  5. delaycompress
  6. missingok
  7. notifempty
  8. create 644 root root
  9. postrotate
  10. /usr/bin/killall -HUP rsyslogd
  11. endscript
  12. }

여기:
monthly: 로그 파일 은 매달 돌아 갑 니 다.다른 사용 가능 한 값 은 'daily', 'weekly' 또는 'yearly' 입 니 다
rotate 5: 한 번 에 압축 파일 로그 5 개 를 저장 합 니 다.여섯 번 째 압축 파일 에 대해 서 는 가장 오래된 압축 파일 이 삭 제 됩 니 다
copress: 순환 작업 이 완 료 된 후에 이미 순환 한 압축 파일 은 gzip 로 압축 합 니 다
delaycopress: 항상 copress 옵션 과 함께 사용 합 니 다. delaycopress 옵션 은 logrotate 에 게 최근 압축 파일 을 압축 하지 말 라 고 지시 합 니 다. 압축 은 다음 라운드 에서 주기 적 으로 진 행 됩 니 다.이것 은 당신 이나 모든 소프트웨어 가 최신 압축 파일 을 읽 어야 할 때 유용 합 니 다
missingok: 로그 가 돌아 가 는 동안 '파일 을 찾 을 수 없습니다' 와 같은 오 류 는 무 시 됩 니 다
notifempty: 로그 파일 이 비어 있 으 면 순환 이 진행 되 지 않 습 니 다
create 644 root: 지정 한 권한 으로 새로운 로그 파일 을 만 들 고 logrotate 도 원본 로그 파일 의 이름 을 바 꿉 니 다
post rotate/endscript: 모든 다른 명령 이 완료 되면 post rotate 와 endscript 에서 지정 한 명령 이 실 행 됩 니 다.이 경우 rsyslogd 프로 세 스 는 즉시 설정 을 다시 읽 고 계속 실 행 됩 니 다
위의 템 플 릿 은 통용 되 고 설정 파 라미 터 는 당신 의 요구 에 따라 조정 되 며 모든 파라미터 가 필요 한 것 은 아 닙 니 다.
샘플 2
이 예 에서 우 리 는 로그 파일 을 한 번 에 따라 가 려 고 하지만 로그 파일 크기 는 50MB 로 늘 릴 수 있 습 니 다.

  
  
  
  
  1. # vim /etc/logrotate.d/log-file

  
  
  
  
  1. /var/log/log-file {
  2. size=50M
  3. rotate 5
  4. create 644 root root
  5. postrotate
  6. /usr/bin/killall -HUP rsyslogd
  7. endscript
  8. }

샘플 3
오래된 로그 파일 을 만 든 날짜 로 이름 을 짓 고 싶 습 니 다. dateext 상 숙 을 추가 하여 구현 할 수 있 습 니 다.

  
  
  
  
  1. # vim /etc/logrotate.d/log-file

  
  
  
  
  1. /var/log/log-file {
  2. monthly
  3. rotate 5
  4. dateext
  5. create 644 root root
  6. postrotate
  7. /usr/bin/killall -HUP rsyslogd
  8. endscript
  9. }

압축 파일 이름 에 날짜 정 보 를 포함 하도록 합 니 다.
장애물 을 제거 하 다
로그 rotate 가 설정 한 장벽 알림 을 제공 합 니 다.
1. logrotate 를 수 동 으로 실행
logrotate 는 명령 행 에서 언제든지 수 동 으로 호출 할 수 있 습 니 다.
/etc/lograte. d/로 설정 한 모든 로그 호출 logrotate:

  
  
  
  
  1. # logrotate /etc/logrotate.conf

특정한 설정 을 위해 logrotate 를 호출 하려 면:

  
  
  
  
  1. # logrotate /etc/logrotate.d/log-file

2. 연습
장벽 을 제거 하 는 과정 에서 가장 좋 은 선택 은 '- d' 옵션 을 사용 하여 logrotate 를 예행연습 방식 으로 실행 하 는 것 이다.인증 을 하려 면 실제 로그 파일 을 따라 가지 않 고 연습 로그 바퀴 를 따라 출력 을 표시 할 수 있 습 니 다.

  
  
  
  
  1. # logrotate -d /etc/logrotate.d/log-file

우리 가 위의 출력 결 과 를 통 해 알 수 있 듯 이 logrotate 는 이 순환 이 불필요 하 다 고 판단 합 니 다.만약 파일 의 시간 이 하루 보다 작다 면, 이것 은 발생 할 것 이다.
3. 강제 순환
순환 조건 이 만족 하지 않 더 라 도 '- f' 옵션 을 사용 하여 logrotate 순환 로그 파일 을 강제 할 수 있 습 니 다. '- v' 매개 변 수 는 상세 한 출력 을 제공 합 니 다.

  
  
  
  
  1. # logrotate -vf /etc/logrotate.d/log-file

  
  
  
  
  1. reading config file /etc/logrotate.d/log-file
  2. reading config info for /var/log/log-file
  3.  
  4. Handling 1 logs
  5.  
  6. rotating pattern: /var/log/log-file forced from command line (5 rotations)
  7. empty log files are rotated, old logs are removed
  8. considering log /var/log/log-file
  9. log needs rotating
  10. rotating log /var/log/log-file, log->rotateCount is 5
  11. dateext suffix '-20140916'
  12. glob pattern '-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
  13. renaming /var/log/log-file.5.gz to /var/log/log-file.6.gz (rotatecount 5, logstart 1, i 5),
  14. old log /var/log/log-file.5.gz does not exist
  15. renaming /var/log/log-file.4.gz to /var/log/log-file.5.gz (rotatecount 5, logstart 1, i 4),
  16. old log /var/log/log-file.4.gz does not exist
  17. . . .
  18. renaming /var/log/log-file.0.gz to /var/log/log-file.1.gz (rotatecount 5, logstart 1, i 0),
  19. old log /var/log/log-file.0.gz does not exist
  20. log /var/log/log-file.6.gz doesn't exist -- won't try to dispose of it
  21. renaming /var/log/log-file to /var/log/log-file.1
  22. creating new /var/log/log-file mode = 0644 uid = 0 gid = 0
  23. running postrotate script
  24. compressing log with: /bin/gzip

4. Logrotate 의 기록 로그
logrotate 자체 로 그 는 보통/var/lib/logrotate/status 디 렉 터 리 에 저 장 됩 니 다.만약 배 리 케 이 드 목적 에 있다 면, 우 리 는 logrotate 를 지정 한 파일 에 기록 하고 싶 습 니 다. 우 리 는 아래 와 같이 명령 행 에서 지정 할 수 있 습 니 다.

  
  
  
  
  1. # logrotate -vf s /var/log/logrotate-status /etc/logrotate.d/log-file

5. Logrotate 정시 작업
logrotate 에 필요 한 cron 작업 은 설치 할 때 자동 으로 생 성 되 어야 합 니 다. 저 는 cron 파일 의 내용 을 붙 여 참고 하도록 하 겠 습 니 다.

  
  
  
  
  1. # cat /etc/cron.daily/logrotate

  
  
  
  
  1. #!/bin/sh
  2.  
  3. # Clean non existent log file entries from status file
  4. cd /var/lib/logrotate
  5. test -e status || touch status
  6. head -1 status > status.clean
  7. sed 's/"//g' status | while read logfile date
  8. do
  9. [ -e "$logfile" ] && echo "\"$logfile\" $date"
  10. done >> status.clean
  11. mv status.clean status
  12.  
  13. test -x /usr/sbin/logrotate || exit 0
  14. /usr/sbin/logrotate /etc/logrotate.conf

작은 매듭 을 짓 자 면, logrotate 도 구 는 방대 한 로그 파일 로 인해 저장 공간 이 소모 되 는 것 을 방지 하 는 데 매우 유용 하 다.설정 이 완료 되면 프로 세 스 가 자동 으로 진행 되 며, 인위적인 관여 없 이 장시간 실 행 될 수 있 습 니 다.본 튜 토리 얼 은 logrotate 를 사용 하 는 몇 가지 기본 적 인 사례 에 중심 을 두 고 있 으 며, 당신 도 그것 을 맞 춰 서 당신 의 수 요 를 만족 시 킬 수 있 습 니 다.
본문 이 너 에 게 도움 이 되 기 를 바란다.

좋은 웹페이지 즐겨찾기