Logrotate命令教程及Linux示例

Logrotate的主要目的是方便Linux日志的管理员。这是一个很有天赋的工具

null
  • 自动旋转
  • 压缩
  • 拆卸
  • 邮件日志

Logrotate可以通过配置文件进行相应的配置和运行。我们将在本教程中详细介绍它们。

配置文件

Logrotate通常用作守护进程。logrotate二进制文件位于 /usr/sbin/logrotate . 配置文件位于 /etc/logrotate.conf . 这里是默认的logrotate配置文件内容。

# see "man logrotate" for details # rotate log files weekly weekly  # use the syslog group by default, since this is the owning group # of /var/log/syslog. su root syslog  # keep 4 weeks worth of backlogs rotate 4  # create new (empty) log files after rotating old ones create  # uncomment this if you want your log files compressed #compress  # packages drop log rotation information into this directory include /etc/logrotate.d  # no packages own wtmp, or btmp -- we'll rotate them here /var/log/wtmp {     missingok     monthly     create 0664 root utmp     rotate 1 }  /var/log/btmp {     missingok     monthly     create 0660 root utmp     rotate 1 }  # system-specific logs may be configured here

此文件是主配置。还有一个目录名 /etc/logrotate.d 它为多个通常不同的作业保存多个logrotate配置文件。

如果我们在logrotate.d下列出文件,我们可以看到有一些关于星号、dpkg、ufw等的配置。

$ ls /etc/logrotate.d/

图片[1]-Logrotate命令教程及Linux示例-yiteyi-C++库

设置日志文件大小

最常用的配置是设置日志何时会随着大小的增加而旋转。我们将用 size 选项和说明符。在下面的示例中,我们将设置大小5k。

/var/log/auth.log {    create 700 pof pof    size 1k}

我们还使用了 create 表达式,该表达式将使用用户名和组名设置存档文件权限。

启用压缩

logrotate的另一个有用特性是压缩归档文件。这将使存档文件的大小变小。压缩比可能会根据gz、bzip、zip等压缩算法而变化。 默认的压缩算法是gzip。在这个例子中,我们定义了压缩

/var/log/auth.log {    compress}

将日期添加到日志文件名

在单个目录中查找大量日志文件时,根据日期查找日志文件可能非常困难。Logrotate提供了添加日志文件的日期机制 日志文件名末尾的日期。例如,如果日志文件名为 auth.log 带有日期的新文件名将被删除 auth-20170308.gz

此日期功能可以如下所示启用。

/var/log/auth.log {    dateext}

指定每月/每天/每周的轮换周期

可以使用不同的度量指定轮换周期。指定为日历日期是一种方法。Logrotate可以每月、每天、每周归档日志文件。

相关文章: 如何在Docker中获取有关运行容器、图像的信息?

每月

/var/log/auth.log {    monthly}

每周

/var/log/auth.log {    weekly}

每天

/var/log/auth.log {    daily}

旋转后运行脚本

在旋转和归档日志文件之后,我们可以为各种作业触发一些脚本。例如,我想得到关于日志轮换的电子邮件。我们可以指定脚本文件 postrotate 选项。脚本文件必须设置为可执行文件才能运行。在本例中,旋转完成后 mailme.sh 脚本将运行。

/var/log/auth.log {    postrotate /usr/bin/mailme.sh}

删除旧日志文件

什么是循环日志文件档案?他们会慢慢长大的。然后他们会填满整个磁盘,服务器就会停机。如果我们不设置将存储的日志数,这是一个糟糕的场景。Logrotate有一种机制,可以删除除指定计数以外的日志文件存档。在本例中,我们只希望存储最后5个日志存档,并删除其他日志存档。我们将使用 rotate 此信息的选项。

/var/log/auth.log {    rotate 5}

另一种删除旧存档的方法是设置日志存档的存储天数。当日志存档到达指定日期时,它将被删除。我们将使用 maxage 此选项。在本例中,我们希望删除超过50天的存档文件。

/var/log/auth.log {    maxage 50}

指定压缩命令

在前面的示例中,我们设置了压缩。但是我们还没有定义任何算法和压缩工具。我们可以指定不同于默认值的压缩工具和相关参数。我们将使用 compresscmd compressext 明确设置压缩工具和扩展。在本例中,我们希望使用bzip2进行压缩。

/var/log/auth.log {    compress    compresscmd /bin/bzip2    compressext .bz2}
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享