Nginx日志分割实例

环境:centos 6.6   nginx.1.10.

1、用脚本分割nginx日志
#!/bin/bash
savepath_log = '/usr/local/nginx/logs'
mkdir  - p  $savepath_log /$ ( date  +% Y ) /$ ( date  +% m )
mv  $savepath_log / access . log  $savepath_log /$ ( date  +% Y ) /$ ( date  +% m ) / access -$ ( date  +% Y % m % d ) . log
mv  $savepath_log / error . log  $savepath_log /$ ( date  +% Y ) /$ ( date  +% m ) / error -$ ( date  +% Y % m % d ) . log
kill  - USR1 ` cat  / usr / local / nginx / logs / nginx . pid`
 将这段脚本保存后加入到Linux的crontab守护进程,让此脚本在每天凌晨0点执行,就可以实现日志的每天分割了。

2、 用logrotate切割nginx日志

logrotate 程序是一个日志文件管理工具。用来把旧的日志文件删除,并创建新的日志文件,我们把它叫做“转储”。我们可以根据日志文件的大小,也可以根据其天数来转储,这个过程一般通过 cron 程序来执行。logrotate 程序还可以用于压缩日志文件,以及发送日志到指定的E-mail 。系统自带的日志切割的配置文件在/etc/logrotate.conf 和 /etc/logrotate.d/syslog 里面,观察一下。 

vim /etc/logrotate.d/nginx             #创建配置文件
/ usr / local / nginx / logs /*. log  {
     daily
     rotate  10
     compress
     delaycompress
     missingok
     notifempty
     dateext
     sharedscripts
     postrotate
     kill  - USR1 ` cat  / usr / local / nginx / logs / nginx. pid`
     endscript
}  
/usr/local/nginx/logs/*.log Nginx的日志路径
daily 日志文件按日转储
rotate  一次将存储10个转储日志。对于第11个转储,时间最久的转储会被删除。
compress 对转储日志进行gzip压缩
delaycompress 总是与compress选项一起用,delaycompress选项指示logrotate不要将最近的转储日志压缩,压缩将在下一次转储周期进行。这在你或任何软件仍然需要读取最新的转储日志时很有用
missingok 在日志转储期间,任何错误将被忽略,例如文件无法找到
notifempty 如果日志文件为空,转储不会进行
dateext 在文件末尾添加当前日期
sharedscripts 对所有日志文件执行一次脚本
postrotate/endscript 在所有其它指令完成后,postrotate和endscript里面指定的命令将被执行。
 
#
测试,有生成就代表配置成功
logrotate -f /etc/logrotate.d/nginx
最后写入到cron守护进程,每天执行,即可实现日志每天切割了。或将脚本存放到/etc/cron.daily/,如果是在/etc/logrotate.d/中,也会自动执行,原因在/etc/cron.daily/logrotate文件中~
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值