因为nginx没有像apache一样,有自带的切割日志工具。所以需要借助脚本来完成。

vim /usr/local/sbin/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                                 #-f为强制覆盖,压缩日志


最后加入计划任务中,让每天凌晨0:0:0执行

crontab -e 然后添加 0 0 * * * /usr/local/sbin/nginx_logrotate.sh