帮酷LOGO
0 0 评论
  • 显示原文与译文双语对照的内容
文章标签:Logrotate  PRE  log  logs  

问题:

我有一个cronjob运行一些 python 脚本,它们生成大量的日志文件。 我如何防止他们变得这么大? 如果文件在达到一定大小后被删除,将是完美的。 因为每隔几天,文件都是 50MB,但在缓慢的互联网连接下下载和分析 Bug 占用了很大的时间。 我只想看到最后 1000行,看看脚本出现错误的地方。

我知道我可以编码这些,但是我只是想知道Linux是否有我不知道的东西。 我想大日志文件是一个常见的问题。 感谢你。


回答 1:

通常应该只记录你关心的活动,如果可能的话,应该将程序配置为不太详细。

建议,使用通常是处理日志文件的常用方法。 但是,不要将内容添加到 /etc/logrotate.conf 中,你应该将自己的工作添加到 /etc/logrotate.d/ 中,否则将在发布升级时查看更多。

下面是我为一个php脚本创建的示例:


/var/log/some-php-app/*.log {


 daily


 rotate 10


 delaycompress


 compress


 notifempty


 missingok


}



  • /var/log/some-php-app/*.log - 是日志文件所在的路径,它是 NAME。 可以看到,你还可以使用通配符将规则应用到多个日志文件中。
  • 每日小时旋转日志文件。 可选项:小时,每周,每月,每年,maxsize,maxage
  • 转到 rotate计数计数文件在删除或者邮寄到邮件指令中指定的地址之前旋转计数次数。
  • delaycompress - 推迟将先前日志文件压缩到下一个旋转周期。
  • 压缩 - 用gzip压缩旧版本的日志文件。 你可以使用 zless 而不是 less 来查看文件。
  • 如果是空的,notifempty 不会旋转日志。
  • missingok - 在不发出日志文件时,转到下一个旋转作业,而不发出错误消息。

看一下 logrotate的说明书,更多的选项。


回答 2:

你将希望在/etc/logrotate. conf中设置一个大小

文件默认存在并且每天运行。 你唯一需要做的就是给 logrotate.conf. 添加一些额外的参数


/path/to_big.log {


 size 1k


 create 700 user group


 rotate 1


}



在本例中,我们指定了日志的路径,我们想要限制的大小,更换日志的权限和保留的数量。 旋转 1将保留一个副本。


回答 3:

在/etc/cron. 中,你可以使用这里命令在中运行的每个小时都有一个链接,如前面的答案所示:


sudo ln -s/etc/cron.daily/logrotate/etc/cron.hourly/



你只需要记住,一旦创建过度日志的问题,就可以确保并删除链接。 即在控件之外创建了过量日志,就需要报告关于问题的信息,因为它可能会影响其他问题,而不需要实现。 这种 Bug 会导致 root 卷耗尽空间,人们会看到各种问题,并且永远不会意识到这是因为它们在 root 空间耗尽。




文章标签:PRE  log  logs  Logrotate  

Copyright © 2011 HelpLib All rights reserved.    知识分享协议 京ICP备05059198号-3  |  如果智培  |  酷兔英语