我有一台 vps 服务器,但 vps 提供商停止了托管服务。我的日志文件有问题。一切似乎都很好,但几个月后自动日志删除不起作用。每分钟日志文件都会增加 10 mb,由于这个问题,我所有的 vps 空间都满了。我检查了 etc 文件夹中的 logrotaion 文件。
logrotation文件配置如下:
/var/log/httpd/*log {
missingok
notifempty
sharedscripts
delaycompress
postrotate
/sbin/service httpd reload > /dev/null 2>/dev/null || true
endscript
daily
copytruncate
}
我想立即删除日志。所以请帮帮我
答案1
该rotate
指令指定在删除之前要保留的先前日志版本的数量。
对于 CentOS,默认值通常在主文件中指定/etc/logrotate.conf
为
rotate 4
因此它将保留 4 个版本(通常为 4 周)。来自手册页
rotate count
日志文件在被删除或邮寄到 mail 命令中指定的地址之前会轮换 count 次。如果 count 为 0,则删除旧版本,而不是轮换。
您可以再次从手册页中根据每个日志覆盖默认值
logrotate 从命令行指定的一系列配置文件中读取有关它应该处理的日志文件的所有内容。每个配置文件都可以设置全局选项(本地定义覆盖全局定义,后面的定义覆盖前面的定义)并指定要轮换的日志文件。
include 指令的文档包含有关如何处理配置文件的更多信息。
您真正需要做的就是添加rotate 0
到 httpd 日志定义
/var/log/httpd/*log {
rotate 0
missingok
notifempty
sharedscripts
delaycompress
postrotate
/sbin/service httpd reload > /dev/null 2>/dev/null || true
endscript
}
您可能不希望在定义中使用 copytruncate,或者 postrotate scripot 将负责打开/关闭文件。