logrotate 설정 nginx 로그 절단

4463 단어
nginx 의 기본 절단 로그 방식 이 좋 지 않 습 니 다. 매일 23: 59 시 에 날짜 에 따라 로 그 를 자 르 는 방법 을 소개 합 니 다.
ogrotate Liux 시스템 에서 로 그 를 분할 하 는 시스템 도구 입 니 다. 로 그 를 주기 (일, 주, 월) 와 크기 에 따라 분할 할 수 있 습 니 다.
서버 접근 이 많 을 때 서버 의 access. log 는 G / 일의 단계 가 증가 할 수 있 습 니 다. 로 그 는 일 주 월 이나 로그 파일 크기 가 특정한 한도액 에 이 르 렀 을 때 분할 되 기 를 바 랍 니 다.
logrotate 도구
/ etc / logrotate. conf 주 프로필
# see "man logrotate" for details
# rotate log files weekly       
weekly

# keep 4 weeks worth of backlogs   4     
rotate 4

# create new (empty) log files after rotating old ones         
create

# use date as a suffix of the rotated file       
dateext

# uncomment this if you want your log files compressed      
#compress

# RPM packages drop log rotation information into this directory           nginx      
include /etc/logrotate.d

# no packages own wtmp and btmp -- we'll rotate them here
/var/log/wtmp {
    monthly
    create 0664 root utmp
        minsize 1M
    rotate 1
}

/var/log/btmp {
    missingok
    monthly
    create 0600 root utmp
    rotate 1
}

# system-specific logs may be also be configured here.

기본 설정 은 위 와 같 습 니 다.
/ etc / logrotate. d / * 독립 프로필
사용자 정의 로그 분할 설정 을 여기에 놓 을 수 있 습 니 다. 홈 프로필 에 불 러 옵 니 다. 예 를 들 어 새로 만 드 는 것 과 같 습 니 다.
/ etc / logrotate. d / nginx 설정 파일:
 nginx 의 기본 로그 디 렉 터 리 는 / home / wwlogs / 이 며, 기본 pid 디 렉 터 리 는 / usr / local / nginx / logs / nginx. pid 입 니 다. 이러한 설정 에 따라 조정 해 야 합 니 다.
첫 번 째 방법:
/ etc / logrotate. d / nginx 파일 을 수정 합 니 다. 다음 과 같 습 니 다.
/var/log/nginx/*.log {
    daily   #      
    missingok #    
    rotate 14 #  14   
    compress  #    
    delaycompress #        
    dateext #         -%Y%m%d
    notifempty #      
    create 0640 www-data adm #   0640       
    sharedscripts
    prerotate
        if [ -d /etc/logrotate.d/httpd-prerotate ]; then
            run-parts /etc/logrotate.d/httpd-prerotate;
             fi
    endscript
    postrotate
        if [ -f /run/nginx.pid ]; then
                        kill -USR1 `cat /run/nginx.pid` #         nginx        ,   nginx
                fi
    endscript
}

그리고 / etc / crontab 에 있 는 \ # \ # \ # \ # \ # \ # 줄 을 수정 하고 25 6 을 59 23 으로 바 꿉 니 다. 다음 과 같 습 니 다.
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab' # command to install the new version when you edit this file # and files in /etc/cron.d. These files also have username fields, # that none of the other crontabs do. SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin # m h dom mon dow user command 17 * * * * root cd / && run-parts --report /etc/cron.hourly 25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily ) ####### 47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly ) 52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly ) #

그러나 이렇게 수정 하 는 것 은 영향 이 크다. 두 번 째 방식 을 제안 한다.
두 번 째 방식:
1. / etc 에서 logrotate. daily. 0 폴 더 를 만 들 고 파일 을 이동 합 니 다:
mv /etc/logrotate.d/nginx /etc/logrotate.daily.0/ #           

2. 집행
sudo crontab -e

3. 집행
#nginx log logrotate
59 23 * * * /usr/sbin/logrotate -f /etc/logrotate.daily.0/nginx >/dev/null 2>&1

이렇게 해서 이전에 nginx 는 기본적으로 로 그 를 자 르 는 방식 을 날짜 에 따라 자 르 는 것 으로 바 꾸 었 다.
 
다음으로 전송:https://www.cnblogs.com/promonkeys/p/10286806.html

좋은 웹페이지 즐겨찾기