我在 CentOS 7 虚拟机上遇到了一些我无法向自己解释的问题。
我正在观察一个以大约 100KBps 的速度增长的日志文件。
我有一个watch
调用du
,但输出始终是 2 的幂,如以下控制台捕获所示:
Every 2s:
du -k out.log
Sat Jan 4 14:26:25 2020
2097088 out.log
因此,以 KB 或 MB 为单位显示大小或控制台中任何更改的大小都会让我满意,例如常规的 15M、16M、17M... 等等。我只是想看到文件增长。单位并不重要。
但我得到的是例如 16M、32M、64M、...256M、512M...没有中间步骤。每次值更改时,都会经过前一次时间的两倍,因为文件必须增长两倍才能使更改可见。
如果我使用-b
没有问题,我会看到大小每 2 秒增长一次。
我在手册页中进行了搜索,例如这个但我不明白为什么我看不到使用该选项的“真正的进展” -k
。
我确信我错过了文档中的某些内容,但我不知道是什么。
感谢大家对这个社区的时间和投入。
编辑
再次运行此命令watch du -k out.log
:
- 4(调用时的第一个值)
- (等待 2 秒)24
- (等待约 1 分钟)28
当时,日志填充缓慢 - 大约约 100 字节/秒,因此每个 KByte 都应该可见......
- (8 秒)32
- (12 秒)36
- (12秒) 40
- (12 秒)44
- (10 秒)52
- (12 秒)60
直到那里,我注意到现在显示的大小是 4K 的倍数,这可能是 HDD 集群大小。我可以理解文件大小可以“以块大小”显示。
- (30秒后)192
如果我可以说的话,文件的向tail -f
我显示日志正在“正常运行”,并且其大小不断增长。
此时已经过去了 10 多分钟,日志源从一开始就相当稳定。
- (12 分钟)448 = 64x7
- (9 分钟)960 = 64x15
- (20 分钟)1984 = 64x31
现在的值似乎是 64K x ((2 的 pow 倍数) -1)
- (24 分钟,现在记录更多内容)传递到 1284 ???什么 ???注意:这不是 64K 的倍数
- (2 分钟)2304 = 64x36
- (5 分钟)1820 ???注意:不是 64K 的倍数
尾部显示文件在增长,没有奇怪的事情......到底发生了什么?
- (2 分钟)3840 = 64x60
- 进程结束
- (2 分钟)2940 ???不是 64 的倍数
要么是我除夕夜喝多了,但事实并非如此。要么这一切中有什么非常特别的东西,我真的很想知道那里发生了什么。