nginx 정시 분할 로그

2056 단어 nginxlogscrontab
nginx 로 그 는 시간 이 지 날수 록 골 치 아 팠 습 니 다. 사실 우 리 는 nginx 메 인 프로 세 스에 신 호 를 보 낼 수 있 습 니 다 USR1. 그리고 오래된 로그 파일 을 압축 할 수 있 습 니 다. 다음은 로 그 를 자 르 는 스 크 립 트 입 니 다.
[root@master ~]# cat /home/test/bin/nginx_reload_logfile.sh
#!/bin/bash
# log_path
base_path='/usr/local/nginx-1.12.1/logs'
# get year and month
year_month=$(date -d yesterday +"%Y%m")
# get yesterday
day=$(date -d yesterday +"%d")

# create backup directory
mkdir -p $base_path/$year_month

# copy logfile to backup
mv $base_path/access.log $base_path/$year_month/access_$day.log

# 
echo $base_path/$year_month/access_$day.log
# reload logfile
kill -USR1 `cat /usr/local/nginx-1.12.1/logs/nginx.pid`

crontab 에 정시 작업 을 추가 하여 매일 23: 59 분 에 로그 스 크 립 트 를 실행 합 니 다.
# nginx access log backup
59 23 * * * sh /home/ysyf/bin/nginx_reload_logfile.sh

절 분 된 효 과 는 다음 과 같 습 니 다. 물론 원 하 는 경 로 를 사용자 정의 할 수 있 습 니 다. 스 크 립 트 를 수정 하면 됩 니 다.
[root@master /usr/local/nginx-1.12.1/logs]#ll
    490828
drwxr-xr-x 2 root   root      4096 10   1 23:59 201909
drwxr-xr-x 2 root   root      4096 10  31 23:59 201910
-rw-r--r-- 1 nobody root   2477169 11   1 23:24 access.log
-rw-r--r-- 1 nobody root 499617441 11   1 23:24 error.log
-rw-r--r-- 1 root   root         6 12  31 2018 nginx.pid
[root@master /usr/local/nginx-1.12.1/logs]#cd 201910
[root@master /usr/local/nginx-1.12.1/logs/201910]#ll
    64348
-rw-r--r-- 1 nobody root  956103 10   2 23:58 access_01.log
-rw-r--r-- 1 nobody root  955541 10   3 23:53 access_02.log
-rw-r--r-- 1 nobody root 1328787 10   4 23:46 access_03.log
-rw-r--r-- 1 nobody root  533591 10   5 23:54 access_04.log
-rw-r--r-- 1 nobody root 1048041 10   6 23:59 access_05.log
-rw-r--r-- 1 nobody root  402311 10   7 23:56 access_06.log
-rw-r--r-- 1 nobody root 3036879 10   8 23:58 access_07.log
-rw-r--r-- 1 nobody root 2848916 10   9 23:48 access_08.log
-rw-r--r-- 1 nobody root 2814881 10  10 23:58 access_09.log
-rw-r--r-- 1 nobody root 3424007 10  11 23:51 access_10.log

좋은 웹페이지 즐겨찾기