`
hyshucom
  • 浏览: 808750 次
文章分类
社区版块
存档分类
最新评论

Linux日志处理:Logrotate

 
阅读更多

Logrote是用来定期重命名和重新使用系统错误日志文件的一个应用程序。它可以保证日志文件不会占用太大的磁盘空间。

/etc/logrotate.conf 文件

它logrotate的一般性配置文件。你可以通过它设置那个文件被重用以及多久重用一次。

  • 你可以设定循环参数为每周或每天。在下面这个例子中,“每周”这个参数被“#”注释了,保留“每天”参数。
  • 循环参赛还可定义一个保留多少份日志文件备份。下面这个例子中保留4份,7份的参数被注释了。
  • 创建参数在每轮循环后新建一个日志文件。

因此,在我们的示例中,将所有的日志文件每天备份,而且将他们保留7天。这些日志文件将会有如下的文件名形式:

logfile
logfile.0
logfile.1
logfile.2
logfile.3
logfile.4
logfile.5
logfile.6

/etc/logrotate.conf 文件示例

# rotate log files weekly (每周循环更新记录日志文件)
#weekly

# rotate log files daily (每天。。。 。。。)
daily

# keep 4 weeks worth of backlogs (保留4周内的日志文件备份)
#rotate 4

# keep 7 days worth of backlogs (保留七日内日志文件备份)
rotate 7

# create new (empty) log files after rotating old ones (在循环掉就的文件时创建新的空日志文件)
create

/etc/logrotate.d 文件夹

许多需要使用syslog的Linux应用程序会将它们的设置文件放置在这个文件夹中以使它们的日志文件实现轮转,并且以它们特有的名字命名。你最好经常查证所有新安装的使用syslog的软件是否在这个文件夹中留有配置文件。下面给出一些示例,它们给特定的软件指定特定的日志轮转文件。

现在在这个目录下有一个示例文件,它将/data/backups文件将中的文件以.tgz格式来轮转。在这个文件中的参数将覆盖在/etc/logrotate.conf文件中的设置。在这个例子中,轮转文件将不会被压缩,而且它们非空的情况下将保存30天。它们的文件将所属为root,权限设置为600.

/data/backups/*.tgz {

 daily
 rotate 30
 nocompress
 missingok
 notifempty
 create 0600 root root
}

注意:在Debian/Ubuntu系统中,/etc/cron.daily.sysklogd脚本将读取/etc/syslog.conf文件,并根据它轮转所有设定的日志文件。所以,对于一般的系统日志,你不必再在/etc/logrotate.d文件夹中重复设定了。因为在 /etc/cron.daily文件夹中它没24小时便运行一次。在Fedora/Redhat系统中,这个脚本被/etc/cron.daily/logrotate取代。而且它不读取syslog配置文件。所以,你必须在/etc/logrotate.d设置好。


激活logrotate

以上对logrotate的设置只有在你使用下面命令时才会生效:

[root@bigboy tmp]# logrotate -f

如果你想让logrotate只读取特定的配置文件而不是所有,把配置文件名作为logrotate的参数运行:

[root@bigboy tmp]# logrotate -f /etc/logrotate.d/syslog

Compressing Your Log Files

如果你的网页访问量比较高,那么日志文件将变得异常大。你可以通过编辑logrotate.conf 文件加入压缩选项来实现对日志文件的压缩。

#
# File: /etc/logrotate.conf
#

# Activate log compression 激活日志压缩功能

compress

这些日志文件将用gzip来压缩,所有的文件将会有一个.gz的扩展名。

[root@bigboy tmp]# ls /var/log/messages*
/var/log/messages /var/log/messages.1.gz /var/log/messages.2.gz
/var/log/messages.3.gz /var/log/messages.4.gz /var/log/messages.5.gz
/var/log/messages.6.gz /var/log/messages.7.gz
[root@bigboy tmp]#

查看这些文件的内容依然很容易,因为你可以用zcat命令快速的将它们的内容显示在屏幕上。

[root@bigboy tmp]# zcat /var/log/messages.1.gz
...
...
Nov 15 04:08:02 bigboy httpd: httpd shutdown succeeded
Nov 15 04:08:04 bigboy httpd: httpd startup succeeded
Nov 15 04:08:05 bigboy sendmail[6003]: iACFMLHZ023165: to=<tvaughan@clematis4spiders.info>, delay=2+20:45:44, xdelay=00:00:02, mailer=esmtp, pri=6388168, relay=www.clematis4spiders.info. [222.134.66.34], dsn=4.0.0, stat=Deferred: Connection refused by www.clematis4spiders.info.
[root@bigboy tmp]#


分享到:
评论

相关推荐

    linux log日志查看【syslogd logrotate】.zip

    linux log日志查看【syslogd logrotate】.zip

    关于linux下logrotate日志切割的相关解释

    网上有很多关于logrotate的资料,但是解释都不一定完整,并且部分解释还不多,本文档经过个人测试,对部分属性添加了自己的解释,并附带使用命令,如果您有这方面的问题可以下载使用,另外发现问题请即时通知于我,...

    Linux中logrotate日志轮询操作总结

    对于Linux系统安全来说,日志文件是极其重要的工具。不知为何,我发现很多运维同学的服务器上都运行着一些诸如每天切分Nginx日志之类的CRON脚本,大家似乎遗忘了Logrotate,争相发明自己的轮子,这真是让人沮丧啊!...

    日志切割之Logrotate1

    1、关于日 2、安装logrotate 3、实践配置logrotate 4、logrotate生产应用 5、附录

    Linux使用logrotate来切割日志文件

    后来发现了logrotate,这是centos自带的日志分割工具,都不用安装额外组件就能实现定时分割日志。 1.运行原理 logrotate由系统的cron运行,位置在/etc/cron.daily/logrotate #!/bin/sh /usr/sbin/logrotate -s /var...

    linux 进程管理 日志轮转 systemctl logratate模板

    linux 进程管理 日志轮转 systemctl logrotate模板

    Logrotate实现Catalina.out日志每俩小时切割示例

    Logrotate是一个日志文件管理工具,它是Linux默认自带的一个日志切割工具。用来把旧文件轮转、压缩、删除,并且创建新的日志文件。我们可以根据日志文件的大小、天数等来转储,便于对日志文件管理,一般都是通过cron...

    基于logrotate自动化处理日志入门、进阶实战与高阶精通All in one系列

    课程概述课程以logrotate为主线,突出实战应用性,全面深入讲解自动化处理应用日志的方方面面(包括日志切割/日志轮询、日志压缩、日志周期性删除等),传授整套自动化处理日志的知识体系,完整覆盖到不同阶段同学的...

    Linux_如何处理系统日志和系统轮转

    知道了在Linux系统中如何进行rsyslog 系统日志管理和 logrotate日志轮转。 拼搏到无能为力,坚持到感动自己。 简述: 1.处理日志程序 a。rsyslog b。其他不同的应用 2.常见的日志文件 ar/log/messages ar/log/...

    Linux系统下nginx日志每天定时切割的脚本写法

    使用Linux系统自带的命令logrotate对Nginx日志进行切割。 Nginx安装目录:/usr/local/nginx/ Nginx日志目录:/usr/local/nginx/logs/、/usr/local/nginx/logs/nginx_logs/ 1、添加nginx日志切割脚本 cd /etc/...

    logrotate-container:一个logrotate容器映像,用于使用Alpine Linux轮流Kubernetes内部的应用程序的持久日志

    对于在kubernetes集群中运行的旧版应用程序,我们需要一个解决方案,将日志写入文件而无需轮换(以传统方式)。 设定范例 我假设Kubernetes中的旧版应用会将日志写入PV响应中。 PVC称为app-logs-pv 。 Kubernetes...

    Linux命令笔记

    4:logrotate日志轮替 语法 logrotate [选项] 配置文件名 rsyslogd-日子服务 1:日志文件格式 2:/etc/rsyslog.comf配置文件 第九部分:软件包管理 软件包管理\软件包管理 1:软件包管理简介 1:源码包(源代码...

    logrotate-stream:通过管道将日志数据传输到流中,无所适从

    支持Linux logrotate样式选项的可写流 例子 在命令行上: node app.js 2&gt;&1 | logrotate-stream app.log --keep 3 --size ' 50m ' --compress 作为一个模块: var stream = require ( 'logrotate-stream' ) , ...

    logrotate配置

    linux的nginx日志分割配置和理解,希望给大家带来方便

    Linux 日志定时轮询流程详解

     对于Linux系统安全来说,日志文件是极其重要的工具。日志文件包含了关于系统中发生的事件的有用信息,在排障过程中或者系统性能分析时经常被用到。当日志文件不断增长的时候,需要定时切割,否则,写日志的速度和...

    在 Linux 系统中手动滚动日志的方法

    日志滚动log rotation在 Linux 系统上是再常见不过的一个功能了,它为系统监控和故障排查保留必要的日志内容,同时又防止过多的日志造成单个日志文件太大。 日志滚动的过程是这样的:在一组日志文件之中,编号最大的...

Global site tag (gtag.js) - Google Analytics