nginx 로그 분할 (로그 회전)

2635 단어 계통사이트
nginx 는 로그 분할 기능 이 내장 되 어 있 지 않 아 로그 가 누적 되 기 쉬 우 며 파일 이 점점 커지 고 있 습 니 다.외부 명령 이나 도 구 를 통 해 로 그 를 분할 해 야 합 니 다.
본 고 는 사용자 정의 스 크 립 트 를 통 해 로 그 를 분할 하 는 방법 을 소개 한다.
nginx 로그 및 nginx. pid 설정
nginx 로그 및 프로 세 스 번호 파일 은 nginx. conf 를 통 해 수정 할 수 있 습 니 다. 아래 설정 은 로그 와 nginx. pid 를 nginx 설치 디 렉 터 리 에 두 었 습 니 다.
worker_processes  4;
access_log  logs/access.log  main;
error_log  logs/error.log  warn;   
pid        logs/nginx.pid;      #pid of nginx master process

로그 분할 스 크 립 트
분 할 된 스 크 립 트 를 / usr / local / bin / rotate 에 두 기nginx_log. sh, 내용 은 다음 과 같 습 니 다.
#!/bin/sh

# Get yesterday's date as YYYY-MM-DD
YESTERDAY=$(date -d 'yesterday' '+%Y-%m-%d')

# move log
mv /path/to/access.log /destination/access-$YESTERDAY.log  
mv /path/to/error.log /destination/error-$YESTERDAY.log

PID_FILE=/usr/local/nginx/logs/nginx.pid

# Tell nginx to reopen the log file.
kill -USR1 $(cat $PID_FILE)

crontab 정시 작업 설정
스 크 립 트 를 작성 한 후 정시 에 실행 하면 됩 니 다.
sudo crontab -e

정시 퀘 스 트 설정 페이지 를 열 고 입력
0   0   *   *   *   /usr/local/bin/rotate_nginx_log.sh 1>>/var/log/rotate_nginx.log 2>&1

매일 새벽 위 로그 이름 바 꾸 기 스 크 립 트 를 실행 하여 로그 분할 작업 을 수행 할 수 있 습 니 다.
많은 Liux 시스템 은 루트 사용자 만 이 정시 작업 을 추가 할 수 있 기 때문에 sudo 명령 을 사용 해 야 합 니 다.
다음 명령 을 통 해 추가 성공 여 부 를 확인 합 니 다:
sudo crontab -l

좋은 웹페이지 즐겨찾기