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 }