如何在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 -?” 更多细节。