其实这篇文应该在2020/09/15就该发出来了,一直忘记写了(
现象
cacti选择起止时间后,绘图并不能正常进行,依旧显示原来的起止时间。
原因
在相对旧版本的cacti内(versions<=1.1),根目录的绘图graph_image.php文件中,其中的时间判断是依据Unix timestamp,即从 1970/1/1 00:00:00 经过的秒数。
1 | /* override: graph start time (unix time) */ |
原判断为小于1600000000,则会在 2020/09/13 20:26:40 后无法通过判断,进而导致绘图没有刷新。
解决
简单粗暴:把判断改大。
永久解决:更换新版本,确认机器的time_t是否为64位。
后续
这个问题说白了就是千年虫的翻版,且旧版本测试时候,有可能是在32位机器上进行测试,故判断写成了1600000000,但是32位机器上,Unix timestamp会在2038/01/19 03:14:07后工作异常。
如果挂载机器是32位,还是尽快更新为妙。