概述
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` 文件并处理所有已配置的日志轮换任务。