nginx에서 로그 절단을 수행하는 방법
高洛峰
高洛峰 2017-05-16 17:29:36
0
5
614

Nginx 로그는 파일로 작성됩니다. 매일 Nginx 로그가 필요합니다
인터넷에서 방법을 많이 봤는데, 모두 스크립트를 작성하고 로그 파일을 고정된 형식으로 자르는 것이었습니다
Nginx는 자체적으로 로그 커팅을 할 수 없나요?

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

모든 응답(5)
phpcn_u1582

크론이 실행 중인지 확인하세요

으아아아

구성 파일 수정

으아아아

예정된 작업 확인

으아아아

logrotate 구성 파일 vi /etc/logrotate.d/nginx

쓰기 으아아아

테스트 구성

으아아아
刘奇

시스템 관리자의 로깅 요구 사항은 끊임없이 변화하고 있습니다. 경량화를 위해 Nginx는 실제로 로그 관리에 대해 걱정하지 않습니다.

공식 LogRotation 위키 페이지

당신도 그것을 찾았을 것입니다. 자신의 스크립트를 사용하거나 logrotate를 사용할 수 있습니다.

我想大声告诉你

nginx 로그 파일에는 회전 기능이 없습니다. 처리하지 않으면 로그 파일이 점점 커집니다. 다행히 nginx 로그 절단 스크립트를 작성하여 로그 파일을 자동으로 잘라낼 수 있습니다.

첫 번째 단계는 로그 파일의 이름을 바꾸는 것입니다. nginx가 로그 파일을 찾지 못하고 이름을 바꾼 후 로그가 손실되는 것에 대해 걱정할 필요가 없습니다. 원래 이름으로 로그 파일을 다시 열기 전에 nginx는 이름을 바꾼 파일에 로그를 계속 기록합니다. Linux는 파일 이름이 아닌 파일 설명자를 사용하여 파일을 찾습니다.

두 번째 단계는 USR1 신호를 nginx 메인 프로세스로 보내는 것입니다.

신호를 받은 후 nginx의 기본 프로세스는 구성 파일에서 로그 파일 이름을 읽고, 로그 파일(구성 파일의 로그 이름으로 이름 지정)을 다시 열고, 작업자 프로세스의 사용자를 소유자로 사용합니다. 로그 파일.

로그 파일을 다시 연 후 nginx 기본 프로세스는 동일한 이름의 로그 파일을 닫고 새로 열린 로그 파일을 사용하도록 작업자 프로세스에 알립니다.

작업 프로세스는 즉시 새 로그 파일을 열고 동일한 이름의 로그 파일을 닫습니다.

그런 다음 이전 로그 파일을 처리할 수 있습니다.

nginx 로그 날짜별 자동 자르기 스크립트는 다음과 같습니다

  • nginx 로그 절단 스크립트
  • 작성자: http://www.nginx.cn
  • !/bin/bash
  • 로그 파일 저장 디렉터리 설정

logs_path="/usr/local/nginx/logs/"

  • PID 파일 설정

pid_path="/usr/local/nginx/nginx.pid"

  • 로그 파일 이름 바꾸기

mv ${logs_path}access.log ${logs_path}access_$(date -d "어제" +"%Y%m%d").log

  • 로그를 다시 열도록 nginx 기본 프로세스에 신호를 보냅니다

kill -USR1 cat ${pid_path}

위 스크립트 nginx_log.sh를 저장하거나 여기를 클릭하여 다운로드하세요

crontab 설정 작업

0 0 * * * bash /usr/local/nginx/nginx_log.sh
매일 0시에 nginx 로그 이름을 날짜 형식으로 변경하고 오늘의 새 로그 파일을 다시 생성합니다.

자세한 출처 참고: http://www.nginx.cn/255.html

世界只因有你

가장 쉬운 방법은 구성 파일에서 직접 구성하는 것입니다.

으아아아
Peter_Zhu

이 방법은 종종 날짜 없이 파일을 생성하므로 더 이상 사용되지 않습니다

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿