我正在使用 Ubuntu 14.04 托管一个 graylog 服务器。在 /var/log/upstart/ 目录中,我有一个纯文本日志,记录所有收到的消息 - 它设置为每 3GB 轮换一次。但是,我之前遇到的问题是,每当它轮换时,我的“graylog-server.log”都会被重命名为“graylog-server.log.1”,我不喜欢这个名字。我在配置中添加了“copy”关键字,现在文件名就好了!但它也会将所有消息留在日志文件中 - 我希望在压缩后清除它们。所以我的问题是...
- 是否有配置关键字可以帮助我实现此目的?我看过它们,但我对 logrotate 还不熟悉,所以也许我错过了一些东西。
- 除此之外,有没有办法安排日志文件在轮换后立即清空?我可能会丢掉几条消息,但这并不让我太担心。
谢谢!
配置:
/var/log/upstart/*server.* {
size 3G
missingok
rotate 5
compress
notifempty
nocreate
copy
}
答案1
通常最新的轮换日志文件( )保持未压缩状态,并在下一次轮换( -> )file.1
时压缩。file.1
file.2.gz
如果你想立即压缩轮换日志文件,你可以添加
nodelaycompress
选项。
节点延迟压缩
不要将前一个日志文件的压缩推迟到下一个轮换周期(这将覆盖延时压缩选项)。