`
FZtree
  • 浏览: 105653 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Rails 日志按天分割

 
阅读更多

http://stackoverflow.com/questions/4883891/ruby-on-rails-production-log-rotation



 

 logrotate 程序是一个日志文件管理工具。用来把旧的日志文件删除,并创建新的日志文件,我们把它叫做“转储”。我们可以根据日志文件的大小,也可以根据其天数来转储,这个过程一般通过 cron 程序来执行。

 

先看配置文件

$vi /etc/logrotate.conf

里面有一行

include /etc/logrotate.d/

logrotate会读取独立的子任务的配置

 

下面我们手动执行一个logrotate任务

切换到/etc/logrotate.d/目录下

$ touch test

$ vi test

内容如下

/tmp/test.log{  

    missingok  

    create 0640 root root  

    rotate 50  

    size=1048576k  

}

切换到/tmp/目录 创建一个test.log 大小10G

$ dd if=/dev/zero of=test.log bs=1024 count=10485760

现在,大小10G的日志文件test.log已经就绪,/etc/logrotate.d/下面针对这个日志文件的子任务配置test文件也已准备就绪。

 

执行命令: logrotate -v /etc/logrotate.conf

发现 /tmp 目录下出现了test.log.1 大小是10G test.log大小是0

 

再生成一个test.log 大小2G

$ dd if=/dev/zero of=test.log bs=1024 count=2097152

执行命令:$ logrotate -v /etc/logrotate.conf

发现 /tmp 目录下出现了test.log.2 大小是10G 之前的test.log.1 大小变成了2G

 

原理

logrotate根据设置的文件大小,当超过这个大小时,转储成另一个文件。

logrotate根据设置的rotate值,自动检测日志文件的名字,旧的分割文件名字每次增加1,新分割出来的文件名字是1

 

  • 大小: 10 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics