logrotate 压缩 但 不加日期 ,然后把*.log.1.gz 重命名为 *.log.gz如何编写
时间: 2024-09-07 20:02:58 浏览: 42
apache的access.log和error.log减肥
`logrotate` 是一个用于管理系统日志文件的工具,它可以帮助我们自动轮转(rotate)、压缩和删除旧的日志文件。如果你想要对日志文件进行压缩但不添加日期,然后将旧的日志文件重命名为带有 `.gz` 扩展名,你可以通过编辑 `logrotate` 的配置文件来实现。
通常,`logrotate` 的配置文件位于 `/etc/logrotate.conf`,你可以添加一个规则,如下:
```conf
/path/to/your/logs/*.log {
weekly
rotate 4
compress
delaycompress
missingok
notifempty
create 640 root adm
postrotate
mv /path/to/your/logs/*.log.1.gz /path/to/your/logs/*.log.gz
endscript
}
```
在这个配置中,你需要替换 `/path/to/your/logs/` 为你的实际日志文件所在目录。
解释一下这个配置文件的关键指令:
- `weekly`:每周轮转一次。
- `rotate 4`:保留4个旧的日志文件。
- `compress`:轮转后的旧日志文件会使用 gzip 进行压缩。
- `delaycompress`:延迟压缩上一次的轮转文件,与 `compress` 配合使用。
- `missingok`:如果日志文件丢失,不会报错。
- `notifempty`:如果日志文件为空,则不执行轮转。
- `create`:轮转后创建新的日志文件,并指定权限和所有者。
- `postrotate` 和 `endscript`:在这些指令之间,可以执行自定义脚本。这里使用 `mv` 命令将压缩后的旧日志文件重命名为 `.gz` 结尾。
需要注意的是,`postrotate` 代码块中的命令会在日志轮转之后执行,`mv` 命令用于将后缀为 `.1.gz` 的压缩文件重命名为 `.gz`。
确保配置文件正确无误后,运行 `logrotate /etc/logrotate.conf` 或者让 `logrotate` 通过 cron 定时任务自动执行。
阅读全文