随着访问量的增大,如果对日志置之不理,总有一天日志文件会撑爆磁盘;所以需要我们对日志进行切割,并且每隔一段时间删除一些旧日志,防止日志无休无止的占用磁盘的空间。


可以通过写一个shell脚本自动化切割,比如每天凌晨00:00把昨天的日志进行归类重命名:


# cd /usr/local/sbin

# vim nginx_logrotate.sh

写入以下脚本:

#! /bin/bash

d=`date -d "-1 day" +%F`

[ -d /tmp/nginx_log ] || mkdir /tmp/nginx_log

mv /tmp/access.log /tmp/nginx_log/$d.log

/etc/init.d/nginx reload > /dev/null

cd /tmp/nginx_log/

gzip -f $d.log

规定每天凌晨00:00去切割,并删除超过30天的日志文件

# crontab -e

0 0 * * * sh /usr/local/sbin/nginx_logrotate.sh

0 0 * * * find /tmp/nginx_log -type f -mtime +30 |xargs rm -rf