关注分享主机优惠活动
国内外VPS云服务器

如何使用logrotate管理每日增长日志(如何读取日志日志)

logrotate简介旨在简化生成大量日志文件的系统的管理。它允许自动旋转、压缩、删除和邮寄日志文件。每个日志文件可能每天、每周、每月处理一次,或者在文件变得过大时处理。

这是logrotate文档中对自身的描述。实际上,logrotate函数非常简单。顾名思义,它可以在一定周期内自动划分和保存日志以防止无限增长,并在必要时压缩和删除日志,还可以执行电子邮件通知等功能。

许多服务器总是运行生成大量日志的程序。nginx和httpd等web服务器的最简单的访问日志,为了保持这些日志的可搜索性,并防止无限增长吃掉所有有限的硬盘,将有各种cron脚本来处理这些日志。事实上,这些事情都可以通过logrotate来完成。

安装logrotate。事实上,大多数Linux发行版都默认安装了logrotate。您可以通过以下命令判断系统中是否预装了logrotate:

Rpm软件包管理器:

RP M-QA | greplogrotate dpkg软件包管理器:

Dpkg --list|grep logrotate一个更简单粗暴的方法:

如果哪个logrotate可以看到返回的字符串,那么您的服务器应该预装了logrotate,并且它每天都在默默工作,但您没有给他分配任何工作。

如果没有安装,可以使用普通的软件包管理工具进行安装:

yum install logrotateap -get install logrotate

logrotate的基本工作原理是一个用于定时处理的管理工具。logrotate本身是一个命令行工具,但它需要定期处理您的日志,因此显然logrotate仍然必须基于cron工作,否则没有人会定期唤醒它并让它工作。在正常情况下,logrotate作为cron.daily的任务每天都会定期执行,这个定时脚本位于/etc/cron.daily/logrotate。

#!/bin/sh#从状态文件CD/var/lib/logrotatetest -e status | | touch status head -1 status & gt;status . cleaned‘s/“//g‘status |在读取日志文件日期时

模仿这个样本文件,我们可以配置一个类似的处理任务。这里,我们来处理nginx的日志文件。通常,web serve的访问日志文件是日志的重灾区。使用以下内容创建/etc/logrotate.d/nginx配置文件:

/home/wwwlogs/*。log { daily rotate 7 datext compress delay compress missing ok notfempty create 644 root根共享脚本post rota tekill -usr 1 ` cat/usr/local/nginx/logs/nginx。PID ` end script}类似于前面的示例配置。请注意,在声明日志文件的位置时使用了*通配符,这意味着所有。/home/wwwlogs/下的日志文件将由logrotate处理,这里有几行额外的配置。

解释如下:

Daily:每日处理日志dateext:备份日志文件的后缀不再是默认的。1。2。3增量格式,而是YYYYMMDD的日期格式。sharedscripts:配置此选项时,prerotate和postrotate段的脚本将在处理完所有文件后(处理前)统一执行。而不是在每个文件前后执行一次postrotate:日志处理后,hook、postrotate和endscript形成一个shell语句块,这部分语句将在日志文件处理后执行,同时还有一个对应的prerotate语句块,这样nginx的日志文件的处理配置就完成了,但我们可能需要确认配置内容是否正确。这时,我们可以使用logrotate命令行的debug选项对其进行测试。

该命令如下所示:

当logrotate -d -f/etc/log rotate . d/nginx打开调试选项时,log rotate会在处理日志的过程中给出详细的处理信息,但不会真正处理日志文件,因此可以用来测试配置文件是否处理正确。

该命令行的输出如下:

正在读取配置文件/etc/log rotate . d/nginx处理1日志旋转模式:/home/wwwlogs/*。从命令行强制日志(7次循环)不循环空日志文件,删除旧日志考虑日志/home/wwwlogs/access.log日志需要循环考虑日志/home/wwwlogs/jp01.sanaecon.com.log日志需要循环考虑日志/home/wwwlogs/nginx_error.log日志需要循环旋转日志/home/wwwlogs/access.log,log -& gt;rotateCount是7dateext后缀‘-2015 11 08‘glob pattern‘-【0-9】【0-9】【0-9】【0-9】【0-9】【0-9】【0-9】【0-9】【0-9】‘glob查找日志以压缩失败的glob查找旧的旋转日志失败的旋转日志/home/www logs/jp01 . Sana econ . com . log,log -& gt;rotateCount是7dateext后缀‘-2015 11 08‘glob pattern‘-【0-9】【0-9】【0-9】【0-9】【0-9】【0-9】【0-9】【0-9】【0-9】‘glob查找日志以压缩失败的glob查找旧的旋转日志失败的rotating log/home/wwwlogs/nginx _ error . log,log -& gt;rotateCount是7dateext后缀‘-2015 11 08‘glob pattern‘-【0-9】【0-9】【0-9】【0-9】【0-9】【0-9】【0-9】【0-9】【0-9】‘glob查找日志以压缩失败glob查找旧的循环日志失败rename/home/wwwlogs/access . log to/home/wwwlogs/access . log -2015 11 08创建新的/home/wwwlogslog:“kill -usr 1 ` cat/usr/Local/nginx/logs/nginx . PID `”可以看到logrotate正在像我们想象的那样正常处理日志文件,一个logrotate配置就完成了。

logrotate命令行不仅可以用于显示配置文件是否配置正确,还可以使用以下命令行手动执行日志拆分:

logrotate-f/etc/logrotate4 . d/nginx将在没有CRON的情况下手动运行日志分段和处理任务。事实上,第三方的其他程序也可以通过这种方式来管理日志分段的频率。

本文给出了一些常见配置文件中配置参数的含义,其他配置参数的含义和功能可参考官方配置文件:http://linuxconfig.org/logrotate-8-manual-page.

总结以上个人经验,希望能给你一个参考,也希望你能支持主机频道zhujipindao。更多内容。

未经允许不得转载:主机频道 » 如何使用logrotate管理每日增长日志(如何读取日志日志)

评论 抢沙发

评论前必须登录!