nginx 로그 가 너무 빨리 증가 하여 정시 계획 로그 관리

2454 단어 nginx 로그
이틀 동안 nginx 로 그 를 자 르 려 고 합 니 다. 인터넷 에서 본 것 은 모두 0 시 에 nginx 를 멈 춘 다음 에 access. log 로 그 를 이름 을 바 꾸 고 nginx 를 시작 합 니 다. 역사 로 그 를 분리 하지 않 았 습 니 다. 그리고 저 는 nginx 서 비 스 를 다시 시작 하 는 것 도 감기 에 걸 리 지 않 아서 날짜 에 따라 역사 로 그 를 자 르 는 스 크 립 트 를 썼 습 니 다.
    제 생각 은 어느 날 로그 grep 를 내 보 내 고 sed - i 로 이 날 로 그 를 삭제 하고 로그 다이 어 트 를 하 는 것 입 니 다.
    그런데 문 제 는 sed - i 다이어트 후 access. log 파일 이 더 이상 커지 지 않 는 다 는 것 이다.
    그래서 어 쩔 수 없 이 마지막 에 nginx 를 다시 시작 했다.
    친구 가 로그 파일 이 더 이상 증가 하지 않 아서 nginx 를 다시 시작 해 야 하 는 이 유 를 알려 주 기 를 바 랍 니 다.
1>vi /usr/local/webserver/nginx/logs/cut_nginx_log.sh
#!/bin/bash
#function:cut nginx log files for lnmp 
#author: http://lnmp.org

#set the path to nginx log files
log_files_path="/usr/local/webserver/nginx/logs/"
log_files_dir="/usr/local/webserver/nginx/logs/old/"
#set nginx log files you want to cut
log_files_name="access.log"
save_days=30
mkdir -p ${log_files_dir}
############################################
#Please do not modify the following script #
############################################

cp ${log_files_path}${log_files_name} ${log_files_path}${log_files_name}_bak

#        3  12     ,
#for((i=3;i<13;i++));
#do 
#if [ $i -lt '10' ];then
#d=0$i
#else
#d=$i
#fi

#11/Oct/2015
#date_g=$(date -d last-day +"%d/%b/%Y")
#date_g=$d/Oct/2015

#20151011
#date_l=$(date -d last-day +"%Y%m%d")
#date_l=201510$d

#11\/Oct\/2015
#date=$(date -d last-day +"%d\/%b\/%Y")
#date="$d\/Oct\/2015"

#cat ${log_files_path}${log_files_name} | grep ${date_g} >${log_files_dir}www_access_${date_l}.log
#sed -i /${date}/d ${log_files_path}${log_files_name}

#done


#11/Oct/2015      
date_g=$(date -d last-day +"%d/%b/%Y")

#20151011         
date_l=$(date -d last-day +"%Y%m%d")

#11\/Oct\/2015      
date=$(date -d last-day +"%d\/%b\/%Y")

cat ${log_files_path}${log_files_name} | grep ${date_g} >${log_files_dir}www_access_${date_l}.log
sed -i /${date}/d ${log_files_path}${log_files_name}

#delete 30 days ago nginx log files
find ${log_files_dir} -mtime +${save_days} -exec rm -rf {} \; 

#  nginx  ,        ,      
/usr/local/webserver/nginx/sbin/nginx -s reload

2>chmod 777 /usr/local/webserver/nginx/logs/cut_nginx_log.sh   #실행 권한
3>crontab -e
꼬리 부분 추가:
0 4 * * * /usr/local/webserver/nginx/logs/cut_nginx_log.sh

4>crontab -l  #성공 여부 보기

좋은 웹페이지 즐겨찾기