rrdtool:非法尝试更新

我试图从一个文本文件中读取“历史”数据并将其存储在rrdtool以便稍后进行绘制。

我创build了一个新的(空的)rrd数据库

 $ rrdtool create monitor_db.rrd --step 900 DS:col1:GAUGE:900:0:1000 DS:col2:GAUGE:3600:0:1000 RRA:MAX:0.5:1:1500 

然后我尝试更新数据库,但是我得到一个错误

 $ rrdtool update monitor_db.rrd --template col1:col2 1404249680:2:3 ERROR: monitor_db.rrd: illegal attempt to update using time 1404249680 when last update time is 1422146997 (minimum one second step) 

rrdtool clains是最后一次更新时间1422146997 ,现在我试图从大约半年前插入数据。

我知道你必须按照时间顺序将数据插入到rrdtool ,但是数据库应该是空的,因为我已经尝试删除它并重新创build它。

Rrdtool创build了一个--start选项,它可以在不改变整个系统的时间的情况下完成您所需要的任务。 默认为10秒前。

在创build数据库之前,我需要更改我的系统时间。

  1. 设置系统时间,使其早于我的数据集中的第一个时间戳记。 在我的情况下: 14042496802014-07-02T21:21在ISO格式)。
  2. 使用rrdtool create创build数据库。
  3. 恢复系统时间到正常。
  4. 使用rrdtool update更新数据库。

使用touch -d编辑文件属性是不够的,开始date可能存储在数据库文件的某处。