目录
- **简介**
- **配置**
- **分割 Nginx access log 示例**
- **总结**
简介
Logrotate 是一个用于管理 Linux 系统日志文件的工具。它可以自动执行以下操作:
- 将旧的日志文件压缩或删除
- 创建新的日志文件
- 将日志文件发送到指定的邮箱或其他目标
配置
既然 logrotate
主要是针对登录文件来进行轮替的动作,所以啰,他当然必须要记载“ 在什么 状态下才将登录文件进行轮替”的设置啊!那么 logrotate 这个程序的参数配置文件在哪里呢? 呵呵!那就是: /etc/logrotate.conf
/etc/logrotate.d/
那个 logrotate.conf
才是主要的参数文件,至于 logrotate.d 是一个目录, 该目录里面的所有 文件都会被主动的读入 /etc/logrotate.conf
当中来进行!另外,在 /etc/logrotate.d/ 里面的文件 中,如果没有规定到的一些细部设置,则以 /etc/logrotate.conf 这个文件的规定来指定为默认值!
Logrotate 的配置文件位于 /etc/logrotate.conf
。该文件包含以下几部分:
- 全局配置:用于设置所有日志文件的默认行为
- 日志文件配置:用于指定特定日志文件的配置
全局配置
全局配置部分通常包含以下选项:
rotate
:指定日志文件的轮换次数。例如,rotate 4
表示最多保留 4 个旧的日志文件size
:指定日志文件的大小限制。例如,size 10M
表示当日志文件超过 10M 时进行轮换compress
:指定是否压缩旧的日志文件。例如,compress
表示使用 gzip 压缩旧的日志文件delaycompress
:指定是否延迟压缩旧的日志文件。例如,delaycompress
表示在下次轮换时压缩旧的日志文件notifempty
:指定是否在日志文件为空时进行轮换。例如,notifempty
表示即使日志文件为空也要进行轮换create
:指定是否在轮换时创建新的日志文件。例如,create
表示在轮换时创建新的日志文件minsize
:指定日志文件的最小大小。例如,minsize 100k
表示只有日志文件大于 100k 时才会进行轮换maxage
:指定日志文件的最大存活时间。例如,maxage 30
表示只保留 30 天内的日志文件
日志文件配置
日志文件配置部分通常包含以下选项:
filename
:指定日志文件的名称sharedscripts
:指定是否使用全局脚本postrotate
:指定在轮换后执行的脚本prerotate
:指定在轮换前执行的脚本
示例
以下是一个示例配置文件:
/etc/logrotate.conf# 全局配置rotate 4
size 10M
compress
delaycompress
notifempty
create# 日志文件配置/var/log/messages {sharedscriptspostrotate/etc/logrotate.d/postrotate-messagesprerotate/etc/logrotate.d/prerotate-messages
}
脚本
Logrotate 可以使用脚本来自定义轮换过程。脚本可以执行以下操作:
- 发送电子邮件通知
- 备份日志文件
- 删除旧的日志文件
测试
可以使用 -d
选项测试配置文件:
logrotate -d /etc/logrotate.conf
分割 Nginx access log 示例
Nginx 的 access log 记录了所有访问 Nginx 服务器的请求。默认情况下,access log 位于 /var/log/nginx/access.log
。
可以使用 Logrotate 将 access log 分割成多个文件。例如,以下配置将 access log 分割成每天一个文件:
创建配置文件 /etc/logrotate.d/nginx
/var/log/nginx/access.log {dailyrotate 7compressdelaycompressnotifemptycreate
}
配置说明
daily
:指定每天进行一次轮换rotate 7
:最多保留 7 个旧的日志文件- `compress
总结
Logrotate 是一个功能强大的工具,可以帮助您管理 Linux 系统日志文件。通过使用 Logrotate,您可以确保日志文件不会占用过多磁盘空间,并且可以轻松地找到旧的日志文件。