> 软件包与系统管理 > logrotate

logrotate: 系统日志文件管理

logrotate 是一个用于自动轮换(rotation)、压缩(compression)、删除(removal)和发送系统日志文件的实用程序。该工具通过防止日志文件变得过大而占用磁盘空间或影响系统性能,从而实现高效的日志管理。

概述

logrotate 根据配置文件定期管理日志文件。旧日志根据保留期被删除或压缩以节省磁盘空间,并创建新日志文件以确保系统稳定运行。在大多数 Linux 系统中,它通过 cron 作业每天自动运行。

主要功能

  • 日志文件自动轮换和保留
  • 旧日志文件压缩和删除
  • 高效的磁盘空间管理
  • 基于配置文件的灵活规则应用
  • 大多数 Linux 发行版默认包含

主要选项

logrotate 主要通过配置文件工作,但您也可以使用命令行选项来控制特定操作。

执行控制

文件指定

生成的命令:

请尝试组合命令。

描述:

`logrotate` 执行命令。

通过组合这些选项,您可以与 AI 一起虚拟地执行命令。

使用示例

logrotate 通常由 cron 自动执行,但您也可以手动执行或使用特定选项进行测试。

使用默认配置文件执行 logrotate

sudo logrotate /etc/logrotate.conf

通常由 cron 执行,但这是手动使用默认配置文件执行 logrotate 的命令。

在调试模式下执行以预览更改

sudo logrotate -d /etc/logrotate.conf

不实际更改日志文件,而是模拟并显示 logrotate 将执行的操作。在应用新配置之前进行测试是必不可少的。

强制轮换日志文件

sudo logrotate -f /etc/logrotate.conf

忽略轮换条件(例如时间、大小)并立即轮换日志文件。用于紧急情况或需要立即处理特定日志时。

使用特定应用程序的配置文件执行

sudo logrotate -c /etc/logrotate.d/nginx

仅使用 `/etc/logrotate.d/` 目录中特定应用程序的配置文件来执行 logrotate。

提示与注意事项

有效使用 logrotate 的提示和注意事项。

配置文件位置

logrotate 的配置文件通常位于两个位置。

  • /etc/logrotate.conf: 全局配置文件,包含所有日志适用的默认值和其他配置文件(include)。
  • /etc/logrotate.d/: 存放定义各个应用程序(例如 Nginx、Apache、MySQL)日志轮换规则的文件的目录。

主要配置指令

logrotate 配置文件中常用的指令。

  • rotate N: 保留 N 个轮换的日志文件。
  • daily/weekly/monthly/yearly: 指定日志轮换周期。
  • compress: 压缩轮换的日志文件。
  • delaycompress: 在下一次轮换时压缩前一个日志。
  • notifempty: 如果日志文件为空,则不进行轮换。
  • missingok: 如果日志文件不存在,则不引发错误。
  • create [mode owner group]: 创建新的日志文件。
  • postrotate/endscript: 定义日志轮换后要执行的脚本。

更改配置时进行测试

在应用新的 logrotate 配置之前,务必使用 `-d`(或 `--debug`)选项进行测试。这是验证配置有效性而不影响实际系统的最安全方法。

与 cron 的集成

logrotate 通常通过 `/etc/cron.daily/logrotate` 脚本每天自动运行。此脚本读取 `/etc/logrotate.conf` 文件并处理所有已配置的日志轮换任务。


相同类别命令