nginx의 일일 로그 양이 많을 경우 매일 자동으로 잘라서 저장하는 것이 향후 쿼리 및 분석을 용이하게 하는 것이 가장 좋습니다
<code><span>#!/bin/sh</span><span>###################</span><span>#filename: nginx_log_rotate.sh</span><span>#vsersion: 0.1v</span><span>#1 0 * * * /bin/sh /home/project/monitor/nginx_log_rotate.sh >/dev/null 2>&1</span><span>###################</span>logs_path=<span>"/usr/local/openresty/nginx/logs"</span> old_logs_path=<span>${logs_path}</span>/old nginx_pid=`cat /usr/local/openresty/nginx/logs/nginx.pid` time_stamp=`date <span>-d</span><span>"yesterday"</span> +<span>"%Y-%m-%d"</span>` mkdir -p <span>${old_logs_path}</span><span>#grep some mode file</span><span>for</span> file <span>in</span> `ls <span>$logs_path</span> | grep log$ | grep -v <span>'^20'</span>` <span>do</span><span>if</span> [ ! <span>-f</span><span>${old_logs_path}</span>/<span>${time_stamp}</span>_<span>$file</span> ] <span>then</span> dst_file=<span>"<span>${old_logs_path}</span>/<span>${time_stamp}</span>_<span>$file</span>"</span><span>else</span> dst_file=<span>"<span>${old_logs_path}</span>/<span>${time_stamp}</span>_<span>$file</span>.$$"</span><span>fi</span> mv <span>$logs_path</span>/<span>$file</span><span>$dst_file</span><span>#gzip -f $dst_file # do something with access.log.0</span><span>done</span>kill -USR1 <span>$nginx_pid</span></code>
저작권 표시: 이 글은 orangleliu(http://blog.csdn.net/orangleliu/)의 원본 글입니다.
위에는 관련 내용을 포함하여 [nginx] 일일 자동 로그 커팅 스크립트를 소개하고 있는데, PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되었으면 좋겠습니다.