Nginx 로그 자동 절단

nginx 는 로그 자동 절단 기능 이 없습니다.로그 파일 을 처리 하지 않 으 면 로그 파일 이 점점 커지 기 때문에 로그 파일 을 자동 으로 자 르 기 위해 nginx 로그 절단 스 크 립 트 를 써 야 합 니 다.
첫 번 째 단계: 로그 파일 의 이름 을 바 꿉 니 다.       이름 을 바 꾼 후 nginx 에서 로그 파일 을 찾 지 못 해 로 그 를 잃 어 버 릴 까 봐 걱정 하지 마 세 요.원래 이름 의 로그 파일 을 다시 열지 않 기 전에 nginx 는 이름 을 바 꾼 파일 에 로 그 를 씁 니 다. Liux 는 파일 이름 이 아 닌 파일 설명자 로 로 그 를 씁 니 다.
두 번 째 단 계 는 nginx 메 인 프로 세 스에 USR 1 신 호 를 보 냅 니 다.
       nginx 메 인 프로 세 스 는 신 호 를 받 으 면 설정 파일 에서 로그 파일 이름 을 읽 고 로그 파일 을 다시 엽 니 다 (설정 파일 의 로그 이름 으로). 작업 프로 세 스 의 사용 자 를 로그 파일 의 소유자 로 합 니 다.
       로그 파일 을 다시 열 면 nginx 메 인 프로 세 스 는 이름 이 바 뀐 로그 파일 을 닫 고 작업 프로 세 스에 게 새로 열 린 로그 파일 을 사용 하 라 고 알 립 니 다.
       작업 프로 세 스 는 즉시 새 로그 파일 을 열 고 이름 이 바 뀐 로그 파일 을 닫 습 니 다.그리고 오래된 로그 파일 을 처리 할 수 있 습 니 다.
nginx 로 그 는 날짜 에 따라 스 크 립 트 를 다음 과 같이 자동 으로 자 릅 니 다.
#nginx      
#author: http://www.xlogin.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 "yesterday" +"%Y%m%d").log
# nginx            
kill -USR1 `cat ${pid_path}`

       이 스 크 립 트 를 / usr / local / nginx 에 저장 하고 nginx 라 고 명명 합 니 다.log.sh
crontab 설정 작업:
0 0 * * * bash /usr/local/nginx/nginx_log.sh

 
이렇게 하면 매일 0 시 0 분 에 nginx 로 그 를 날짜 형식 으로 바 꾸 고 오늘 의 새 로그 파일 을 다시 생 성 합 니 다.

좋은 웹페이지 즐겨찾기