我正在尝试从文本文件中读取“历史”数据,然后将其存储到rrdtool
图表中。
我已经创建了一个新的(空的)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
是最后更新时间,1422146997
是现在,我正尝试插入大约半年前的数据。
我知道您必须按时间顺序插入数据rrdtool
,但是数据库应该是空的,因为我已尝试删除它并重新创建它。
答案1
Rrdtool create 有一个--start
选项,它可以执行您需要的操作,而无需更改整个系统的时间。默认为 10 秒前。
答案2
在创建数据库之前,我需要更改系统时间。
- 设置系统时间,使其早于我的数据集中的第一个时间戳。就我而言:
1404249680
(2014-07-02T21:21
ISO格式)。 - 使用 创建数据库
rrdtool create
。 - 恢复系统时间正常。
- 使用 更新数据库
rrdtool update
。
编辑文件属性touch -d
是不够的,开始日期可能存储在数据库文件的某个地方。