Nginx 로그 절단 스 크 립 트

4891 단어 Linux
nginx 에 저 장 된 로그 파일 이 점점 커지 기 때문에 나중에 특정한 시간의 로 그 를 살 펴 보고 싶 을 때 커 다란 파일 을 열 때 가 져 온 성능 대가 와 시간 포 지 셔 닝 을 찾 는 데 어려움 을 겪 기 때문에 로그 파일 을 시간 과 빈도 에 따라 절단 해 야 합 니 다.절단 과정 은 다음 과 같다.
현재 시간 디 렉 터 리 를 만 듭 니 다. 예 를 들 어 년 / 월 디 렉 터 리 그리고 현재 지정 한 로 그 를 만 든 디 렉 터 리 로 잘라 내기 nginx 서 비 스 를 다시 시작 하고 0kb 크기 의 새 로그 파일 을 다시 만 듭 니 다 계획 작업 을 통 해 상기 절단 로 그 를 주기 적 으로 실행 하고 로 그 를 다시 만 드 는 작업 은 로그 파일 을 일정한 크기 로 유지 할 수 있 을 뿐만 아니 라 지 정 된 시간 형식 과 디 렉 터 리 에 따라 저장 할 수 있 습 니 다.조회 의 편리 함 과 파일 이 빠르게 열 립 니 다.
절단 스 크 립 트 코드 는 다음 과 같 습 니 다:
 1 #!/bin/bash
 2 
 3 # nginx      
 4 log_files_path="/home/wwwlogs/"
 5 
 6 #nginx       
 7 log_files_dir=${log_files_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")
 8 
 9 #          access.log error.log
10 log_files_name=(access error)
11 
12 #nginx      
13 nginx_sbin="/usr/local/nginx/sbin/nginx"
14 
15 #      
16 save_days=30
17 
18 #      
19 mkdir -p $log_files_dir
20 
21 log_files_num=${#log_files_name[@]}
22 
23 #      
24 for((i=0;ido
25 mv ${log_files_path}${log_files_name[i]}.log ${log_files_dir}/${log_files_name[i]}_$(date -d "yesterday" +"%Y%m%d").log
26 done
27 
28 #    30      
29 find $log_files_path -mtime +$save_days -exec rm -rf {} \;
30 
31 #  nginx  ,        
32 $nginx_sbin -s reload

스 크 립 트 를 놓 으 면 이 스 크 립 트 를 실행 할 계획 작업 을 만 들 수 있 습 니 다. 먼저 이 스 크 립 트 에 실행 가능 한 권한 을 부여 합 니 다.
chmod +x cut_nginx_logs.sh

그리고 계획 작업 만 들 기:
riqi@ubuntu:~$ crontab -e

작업 추가:
00 00 * * * /bin/bash /home/crontab/cut_nginx_logs.sh

좋은 웹페이지 즐겨찾기