logrotate 压缩 但 不加日期 ,然后把*..log.1.gz 重命名为 *.log.gz如何编写
时间: 2024-09-07 14:02:58 浏览: 39
apache的access.log和error.log减肥
`logrotate` 是一个用于管理系统日志文件的工具,它可以自动帮助管理日志文件的压缩、轮转、删除等操作。如果你想要在轮转时压缩日志文件但不保留日期信息,并且将压缩后的文件名中的日期部分去除,你可以通过编辑 `logrotate` 的配置文件来实现。
通常,`logrotate` 的配置文件位于 `/etc/logrotate.conf`,但也可以在 `/etc/logrotate.d/` 目录下为每个应用单独设置配置文件。以下是一个示例配置,假设我们针对 `/var/log/someapp.log` 文件进行操作:
```
/var/log/someapp.log {
daily
compress
delaycompress
missingok
rotate 7
size=+1G
create 640 root adm
postrotate
/usr/bin/find /var/log -name "*.log.1.gz" -exec sh -c 'mv {} $(echo {} | sed "s/\.1\.gz$/.gz/")' \;
endscript
}
```
这里的配置做了以下操作:
- `daily` 表示日志每天轮转一次。
- `compress` 表示新生成的日志文件会被压缩。
- `delaycompress` 表示下一个日志文件在下一次轮转时压缩,而当前轮转的文件将在下一次轮转时被压缩。
- `missingok` 表示如果日志文件丢失,不会报错。
- `rotate 7` 表示保留7个旧的日志文件。
- `size=+1G` 表示当日志文件大小达到1GB时进行轮转。
- `create 640 root adm` 表示在创建新的日志文件时使用指定的权限和所有者。
- `postrotate` 是在 `logrotate` 脚本执行完毕后要执行的命令。这里使用 `find` 和 `sed` 命令将所有旧的 `.log.1.gz` 文件重命名为 `.log.gz`。
请注意,这个配置需要结合你的系统环境和需求进行适当的修改。确保你有足够的权限去修改日志文件,并且在实施任何改变之前应该先在测试环境中验证配置文件的正确性。
阅读全文