[셸 스 크 립 트] nginx 는 매일 로그 스 크 립 트 를 자동 으로 자 릅 니 다.

nginx 는 매일 로 그 량 이 비교적 많 을 때 매일 자동 으로 절단 하고 저장 하 는 것 이 좋 습 니 다. 그러면 앞으로 의 조회 와 분석 을 할 수 있 습 니 다.
#!/bin/sh
###################
#filename: nginx_log_rotate.sh
#vsersion: 0.1v
#1 0 * * * /bin/sh /home/project/monitor/nginx_log_rotate.sh >/dev/null 2>&1
###################

logs_path="/usr/local/openresty/nginx/logs"
old_logs_path=${logs_path}/old
nginx_pid=`cat /usr/local/openresty/nginx/logs/nginx.pid`

time_stamp=`date -d "yesterday" +"%Y-%m-%d"`

mkdir -p ${old_logs_path}

#grep some mode file
for file in `ls $logs_path | grep log$ | grep -v '^20'`
do
    if [ ! -f ${old_logs_path}/${time_stamp}_$file ]
    then
        dst_file="${old_logs_path}/${time_stamp}_$file"
    else
        dst_file="${old_logs_path}/${time_stamp}_$file.$$"
    fi
    mv $logs_path/$file $dst_file
    #gzip -f $dst_file # do something with access.log.0
done

kill -USR1 $nginx_pid

좋은 웹페이지 즐겨찾기