记录cacti时间筛选bug的解决办法

存在BUG的版本:

>=0.8.7<1.2.10
0.8.7至1.2.10所有版本,均会出现此故障

不受影响的版本:

>=1.2.10后所有版本,<0.8.7前所有版本

 

问题分析:

Cacti从0.8.7版本开始,也就是说在2007年(13年前)设置了时间戳的值为1600000000,转换成时间为2020-09-13 20:26:40,表示在2020年9月13日20点26分40秒后,选择过滤图形时间会导致失效,图形过滤器出现BUG。

修复方法:

0.8.7版本至1.0.0版本修复方法如下:

修改当前web根目录下的graph_xport.php和graph_image.php两个文件,查找1600000000,每个文件中会有两个这个值,将其全部改成2088385563,修改后无需重启任何服务,直接刷新当前浏览器即可!

 
1 2 3 4 5 6 7 8 if (!empty($_GET["graph_start"]) && $_GET["graph_start"] < 1600000000) { $graph_data_array["graph_start"] = $_GET["graph_start"]; }   /* override: graph end time (unix time) */ if (!empty($_GET["graph_end"]) && $_GET["graph_end"] < 1600000000) { $graph_data_array["graph_end"] = $_GET["graph_end"]; }

1.0.0版本至1.2.10版本修复方法如下:

修改当前web根目录下的graph_image.php、graph_json.php、graph_xport.php、remote_agent.php这四个文件,查找1600000000,将其全部改成2088385563,修改后无需重启任何服务,直接刷新当前浏览器即可!

 
1 2 3 4 5 6 7 8 if (!isempty_request_var('graph_start') && get_request_var('graph_start') < 1600000000) { $graph_data_array['graph_start'] = get_request_var('graph_start'); }   /* override: graph end time (unix time) */ if (!isempty_request_var('graph_end') && get_request_var('graph_end') < 1600000000) { $graph_data_array['graph_end'] = get_request_var('graph_end'); }

 

官方在1.2.10版本中将1600000000改成了FILTER_VALIDATE_MAX_DATE_AS_INT变量,此变量定义的值是2088385563,也就是说在2036-03-06 11:06:03后,还会出现时间戳故障。

 

 

原文地址:https://www.cnblogs.com/yantianwei/p/13807437.html

上一篇:LeetCode字符串转换整数 (atoi)


下一篇:Leetcode 8. String to Integer (atoi)