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]#


GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐