假设我想在文件大小为 1kb 时进行 logrotate 。在运行之前,如果日志的文件大小为 4kb,我希望 logrotate 创建 4 个不同的日志文件。
前:
something.log (4kb)
我期望发生什么。
something.log (0kb)
something.log.1 (1kb)
something.log.2 (1kb)
something.log.3 (1kb)
something.log.4 (1kb)
但目前正在发生的事情是
something.log (0kb)
something.log.1 (4kb)
尽管我给定的大小是1k。
读取日志的程序无法处理大于特定大小的文件,因此我想使用 logrotate 来控制大小。
我正在使用的示例 logrotate confing 文件
/pathme/something/data/*/logs/*.log {
su username1 username1
missingok
rotate 10
notifempty
size 1k
copytruncate}
默认情况下,Logrotate 每天仅由 cron 运行一次,请查看其配置并采取相应措施。如果日志文件超过了您在下午(例如)在 logrotate 配置中指定的最大大小,则 logrotate 在运行之前不会对其执行任何操作。这通常发生在午夜左右。
如果您需要日志文件大小的精确度,我建议您更频繁地运行 logrotate(每小时、每 30 分钟或其他),然后将 logrotate 配置为比所需最大大小更小的值,以避免日志文件变得太大对于需要读取它们的程序。
您没有指定操作系统,但日常系统 cron 作业通常是
/etc/cron.daily
或类似的。