Nginx笔记总结十:Nginx日志切割

1.Nginx日志切割

logrotate日志文件管理工具,通过cron程序定期执行,默认在cron默认程序的dayli目录下

[root@joker logrotate.d]# cat /etc/cron.daily/logrotate

#!/bin/sh
/usr/sbin/logrotate /etc/logrotate.conf
EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then

    /usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"

fi

exit 0

/etc/logrotate.d 按照格式防止在改目录可根据crontab定期执行,也可收到执行/usr/sbin/logrotate 定义的格式文件来执行

2.    参数列表:

compress/nocompress

gzip压缩/不压缩

copytruncate/nocopytruncate

用于还在打开中的日志,把当前日志备份并截断/备份但是不截断

create mode ower group/nocreate

指定文件模式创建新的日志文件/不创建新的日志文件

delaycompress/nodelaycompress

和compress一起,日志到下一次转存是压缩/转存同时压缩

ifempty/notifempty

空文件也转存,默认/空文件不转存

mail address / nomail

日志发送到指定的mail地址

olddir directory/noolddir

转存后日后i文件放入指定目录,必须和当前日志文件同一个文件系统

prerotate/endscript

在执行转存之前需执行的命令,关键字必须单独占行

postroutate/endscript

在执行转存之后需执行的命令,关键字必须单独占行

daily

周期每天

weekly

周期每周

monthly

周期每月

rotate count

转存次数,0表示不备份,5表示保留5个备份

size size

当指定文件达到指定大小时才转存

tabootext[+] list

不转存指定的扩展名,默认扩展名含.rpm-oring

error address

错误信息发送到指定的mail地址

missingok

如果日志文件丢失,进入到下一个不发出错误消息

sharedscripts

可以写多个日志文件,同时执行一个脚本,搭配脚本关键字

include

包含文件

dateext

为日志打上日期标签

3. Nginx定义日志轮滚策略

nginx_log_rotate

/data/weblogs/*.log {

nocompress

daily

copytruecate

create

notifempty

rotate 7

dateext

postrotate

/bin/kill -HUP `cat /var/run/nginx.pid 2> /dev/null` 2> /dev/null

endscript

}