设置nginx日志滚动

需求:设置nginx每天凌晨12点轮转,系统版本为debian7,nginx版本为tengine2.2.0

1、修改logrotate主配置文件,打开压缩和以时间为后缀命名

# vim /etc/logrotate.conf
# see "man logrotate" for details
# rotate log files weekly
weekly

# keep 4 weeks worth of backlogs
rotate 4

# create new (empty) log files after rotating old ones
create

# use date as a suffix of the rotated file
dateext

# uncomment this if you want your log files compressed
compress

# packages drop log rotation information into this directory
include /etc/logrotate.d

# no packages own wtmp, or btmp -- we'll rotate them here
/var/log/wtmp {
    missingok
    monthly
    create 0664 root utmp
    rotate 1
}

/var/log/btmp {
    missingok
    monthly
    create 0660 root utmp
    rotate 1
}

# system-specific logs may be configured here

2、添加一条nginx的logrotate配置(正常配置到这里就可以了)

# vim /etc/logrotate.d/nginx
/usr/local/nginx/logs/*.log {
    daily
    rotate 7
    compress
    missingok
    sharedscripts
    postrotate
        if [ -f /usr/local/nginx/sbin/nginx-tengine.pid ]; then
            kill -USR1 `cat /usr/local/nginx/sbin/nginx-tengine.pid`
        fi
    endscript
}

3、删除系统自带的每日轮转任务

# mv /etc/cron.daily/logrotate /tmp/

4、添加一条计划任务,每天凌晨12点轮转

# crontab -e
0 0 * * *  /usr/sbin/logrotate /etc/logrotate.conf

5、修改crontab时区,避免时区问题

# vim /etc/crontab
CRON_TZ=Asia/Shanghai

# /etc/init.d/cron restart
posted @ 2017-09-04 02:57  KeithTt  阅读(4017)  评论(0编辑  收藏  举报