>  Q&A  >  본문

nginx에서 로그 절단을 수행하는 방법

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

高洛峰高洛峰2712일 전560

모든 응답(5)나는 대답할 것이다

  • phpcn_u1582

    phpcn_u15822017-05-16 17:31:36

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

    으아아아

    구성 파일 수정

    으아아아

    예정된 작업 확인

    으아아아

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

    쓰기 으아아아

    테스트 구성

    으아아아

    회신하다
    0
  • 怪我咯

    怪我咯2017-05-16 17:31:36

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

    공식 LogRotation 위키 페이지

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

    회신하다
    0
  • 我想大声告诉你

    我想大声告诉你2017-05-16 17:31:36

    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

    회신하다
    0
  • 世界只因有你

    世界只因有你2017-05-16 17:31:36

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

    으아아아

    회신하다
    0
  • 天蓬老师

    天蓬老师2017-05-16 17:31:36

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

    회신하다
    0
  • 취소회신하다