如何在Ubuntu12.10上使用Logrotate管理日志文件

来自菜鸟教程
跳转至:导航、​搜索

关于 Logrotate

Logrotate 是一个实用程序/工具,用于管理系统中日志文件的自动轮换、删除和压缩等活动。 这是管理日志的绝佳工具,可节省宝贵的磁盘空间。 通过一个简单而强大的配置文件,可以控制不同的对数旋转参数。 这可以完全控制自动管理日志的方式,而无需手动干预。

先决条件

作为先决条件,我们假设您已阅读有关如何设置 Droplet 或 VPS 的文章。 如果没有,你可以在这里找到文章。 本教程要求您启动并运行 VPS 并登录。

设置日志旋转

步骤 1 — 更新系统和系统包

运行以下命令从 apt-get 更新包列表,并获取有关最新版本的包及其依赖项的信息。

sudo apt-get update

第 2 步 — 安装 Logrotate

如果你的 VPS 上还没有 logrotate,现在通过 apt-get 安装它。

sudo apt-get install logrotate

第 3 步 — 确认

要验证 logrotate 是否已成功安装,请在命令提示符下运行它。

logrotate

由于 logrotate 实用程序基于配置文件,因此上述命令不会轮换任何文件,并且会向您简要介绍用法和可用的开关选项。

第 4 步 - 配置 Logrotate

logrotate 实用程序的配置和默认选项位于:

/etc/logrotate.conf

一些重要的配置设置是:旋转间隔、日志文件大小、旋转计数和压缩。

特定于应用程序的日志文件信息(以覆盖默认值)保存在:

/etc/logrotate.d/

我们将看几个例子来更好地理解这个概念。

第 5 步——示例

一个示例应用程序配置设置是 dpkg(Debian 软件包管理系统),它存储在 /etc/logrotate.d/dpkg 中。 此文件中的条目之一是:

/var/log/dpkg.log {
    monthly
    rotate 12
    compress
    delaycompress
    missingok
    notifempty
    create 644 root root
}

这意味着:

  • dpkg 的 logrotation 监控 /var/log/dpkg.log 文件并每月执行一次 - 这是轮换间隔。
  • “rotate 12”表示将保留 12 天的日志。
  • 通过指定“compress”和“delaycompress”,可以使用 gzip 格式压缩日志文件,将压缩过程延迟到下一次日志轮换。 'delaycompress' 仅在指定 'compress' 选项时才起作用。
  • 'missingok' 避免出现任何错误并继续处理下一个日志文件。
  • 如果日志文件为空,'notifempty' 避免日志轮换。
  • '创造 ' 在日志轮换后创建一个具有指定属性的新空文件。

虽然在上面的例子中没有,如果你想控制系统中增长的日志的大小,'size'也是一个重要的设置。

大约 100MB 的配置设置如下所示:

size 100M

请注意,如果同时设置了大小和旋转间隔,则将大小视为更高的优先级。 也就是说,如果配置文件具有以下设置:

monthly
size 100M

然后一旦文件大小达到 100M,日志就会轮换,这不需要等待每月的周期。

第 6 步——定时任务

您还可以将 logrotation 设置为 cron,这样可以避免手动过程,并自动处理。 通过在 /etc/cron.daily/logrotate 中指定一个条目,每天都会触发轮换。

第 7 步——状态检查和验证

要验证特定日志是否确实在轮换并检查其轮换的最后日期和时间,请检查 /var/lib/logrotate/status 文件。 这是一个格式整齐的文件,其中包含日志文件名和上次轮换的日期。

cat /var/lib/logrotate/status 

此文件中的一些条目,例如:

"/var/log/lpr.log" 2013-4-11
"/var/log/dpkg.log" 2013-4-11
"/var/log/pm-suspend.log" 2013-4-11
"/var/log/syslog" 2013-4-11
"/var/log/mail.info" 2013-4-11
"/var/log/daemon.log" 2013-4-11
"/var/log/apport.log" 2013-4-11

恭喜! 您已在系统中安装了 logrotate。 现在,根据您的要求更改配置设置。

尝试“man logrotate”或“logrotate -?” 更多细节。