位置:海鸟网 > IT > linux/Unix >

Linux系统故障排除日志:Logrotate

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

/etc/logrotate.conf 文件

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

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

logfilelogfile.0logfile.1logfile.2logfile.3logfile.4logfile.5logfile.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
[root@bigboy tmp]#