nginx 의 자동 로그 절단 - 스 크 립 트 가 아 닙 니 다.
그 후에 나 는 nginx 의 로그 저장 디 렉 터 리 에서 로그 가 모두 잘 렸 다 는 것 을 알 게 되 었 다. 이것 은 매우 정상 적 인 것 이다. 그러나 내 가 보기에 crontab 아래 에 서 는 스 크 립 트 파일 이 nginx 의 로그 절단 을 하지 않 았 다.
저 는 머리 가 잘 리 지 않 았 습 니 다. 제 가 생각 했 던 것 은 모두 스 크 립 트 로 로 그 를 자 른 다음 에 정시 작업 에 넣 고 하늘 에 따라 실 행 했 습 니 다.
이후 인터넷 글 을 검색 해 nginx 를 자 르 는 로 그 를 찾 았 다.
서비스 이름: logrotate, 설치 방법: yum -y install logrotate
Ubuntu 설치 방법: apt-get -y install logrotate
자신 이 전에 산 클 라 우 드 서버 인지 아 닌 지 는 모 르 겠 지만 보통 가장 기본 적 인 설치 입 니 다. 아마 이 소프트웨어 에 설치 되 지 않 았 을 것 입 니 다.
yum 방식 으로 설 치 된 nginx 라면 시스템 은 기본적으로 logrotate 라 는 로그 관리 소프트웨어 를 통 해 하늘 에 따라 분 단 됩 니 다.
살펴보다 logrotate 서버 에 있 는 파일 위치
[root@123~]# rpm -ql logrotate
/etc/cron.daily/logrotate
/etc/logrotate.conf
/etc/logrotate.d
/usr/sbin/logrotate
/usr/share/doc/logrotate-3.7.8
/usr/share/doc/logrotate-3.7.8/CHANGES
/usr/share/doc/logrotate-3.7.8/COPYING
/usr/share/man/man5/logrotate.conf.5.gz
/usr/share/man/man8/logrotate.8.gz
logrotate 의 프로필 은 / etc / logrotate. conf 이 고 / etc / logrotate. d / 는 다른 프로필 을 저장 하 는 디 렉 터 리 입 니 다.이 디 렉 터 리 의 모든 파일 은 / etc / logrotate. conf 에서 주동 적 으로 읽 혀 집 니 다.
[root@123~]# ls /etc/logrotate.d/
nginx ppp syslog wpa_supplicant yum
프로필 아래 nginx 프로필 이 있 는 것 을 보 았 습 니 다. 내용 은 다음 과 같 습 니 다.
[root@123~]# cat /etc/logrotate.d/nginx
/var/log/nginx/*log { # nginx ,
daily #
rotate 10 # 10 。 11 ,
missingok # , , “ ”
notifempty # ,
compress # , gzip
sharedscripts # postrotate , 。 , #
postrotate # ,postrotate endscript 。 ,rsyslogd # 。 :
/bin/kill -USR1 $(cat /var/run/nginx.pid 2>/dev/null) 2>/dev/null || :
endscript
}
daily:
weekly:
monthly:
nocompress: ,
copytruncate: ,
nocopytruncate:
create mode owner group: ,
nocreate:
delaycompress compress ,
nodelaycompress delaycompress , 。
size size ,Size bytes ( ) KB (sizek) MB (sizem).
dateext: , :xxx.log-20160402.gz 。 , , xxx.log-1
delaycompress: compress ,delaycompress logrotate , 。
create 640 nginx adm: , , logrotate 。
rotate count ,0 ,5 5
logrotate 의 절단 시간 은 기본적으로 / etc / anacrontab 에서 설정 되 어 있 습 니 다.
START_HOURS_RANGE 설정 logrotate 실행 시간
[root@123~]# cat /etc/anacrontab
# /etc/anacrontab: configuration file for anacron
# See anacron(8) and anacrontab(5) for details.
SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# the maximal random delay added to the base delay of the jobs
RANDOM_DELAY=45
# the jobs will be started during the following hours only
START_HOURS_RANGE=3-22
#period in days delay in minutes job-identifier command
1 5 cron.daily nice run-parts /etc/cron.daily
7 25 cron.weekly nice run-parts /etc/cron.weekly
@monthly 45 cron.monthly nice run-parts /etc/cron.monthly
일반적으로 스 크 립 트 를 사용 하면 로 그 를 자 르 는 명령 을 실행 한 후 nginx 를 부 드 럽 게 다시 시작 합 니 다. 즉, reload 입 니 다.
다음은 새로운 방법 을 제공 합 니 다. 테스트 환경 에서 테스트 가 끝 난 후에 생산 환경 을 변경 하 십시오. 해당 환경 이나 배치 에 따라 차이 가 있 을 수 있 습 니 다.
\ # nginx 메 인 프로 세 스에 USR 1 신 호 를 보 내 고 로그 파일 을 다시 엽 니 다. 그렇지 않 으 면 뮤 직 비디오 후의 파일 에 데 이 터 를 계속 쓸 것 입 니 다.이 유 는 Liux 시스템 에서 커 널 은 파일 설명자 에 따라 파일 을 찾 습 니 다.이렇게 하지 않 으 면 로그 절단 에 실 패 했 습 니 다.
kill -USR1 `ps axu | grep "nginx: master process" | grep -v grep | awk '{print $2}'`
당신 도 나 처럼 만 났 다 면 로 그 는 자동 으로 잘 렸 지만 정시 작업 이 실행 되 는 것 을 발견 하지 못 했 습 니 다. 이 글 을 저장 하 십시오.
참고 글:https://www.cnblogs.com/ilanni/p/5365420.html
이 글 은 더욱 상세 합 니 다.https://www.cnblogs.com/kevingrace/p/6307298.html
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
간단! Certbot을 사용하여 웹 사이트를 SSL(HTTPS)화하는 방법초보자가 인프라 주위를 정돈하는 것은 매우 어렵습니다. 이번은 사이트를 간단하게 SSL화(HTTP에서 HTTPS통신)로 변경하는 방법을 소개합니다! 이번에는 소프트웨어 시스템 Nginx CentOS7 의 환경에서 S...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.