logrotate 설정 nginx 로그 절단
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
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.