堕落不振功业废,勤耕不辍日月新

RRD 修改舊資料數值

综合 hailen 14℃

RRD 是十分好用的統計工具,很多伺服的監測也會使用 RRD。

今天發現 RRD 內的一組數據紀錄出錯,但 RRD 內建並沒有修改舊數據的功能,需要將 RRD 資料庫備份成 XML 檔,修改 XML 檔後,再復原到資料庫,以下是修改的方法,在這裡記錄一下。

1. 例如要修改數據的 RRD 檔是 /usr/local/rrd/file.rrd, 先用 rrdtool 的 dump 功能,將 RRD 的資料匯出成 XML 檔:

# rrdtool dump /usr/local/rrd/file.rrd file-backup.xml

2. 然後直接用 vi 剛剛建立的 XML 檔:

# vi file-backup.xml

例如要找的資料時間是 2020-05-18 08:00:00,找出這個時間字串的一行

3.每一個數值會用 分隔,次序跟建立 RRD 檔時的順序一樣。但仔細一看那些數值都看不懂的,因為 RRD 會用科學記數法儲存,例如像這樣 5.6206361067e+01。

要轉換這個數值,可以用 python 實現。例如上面的 5.6206361067e+01,用以下寫法:

#!/usr/bin/python

print ("%d"% 5.6206361067e+01)

執行後可以看到結果是 56, 例如我想將數值改成 60,python 可以這樣寫:

#!/usr/bin/python

print ("%e"% 60)

執行後可以得出結果是 6.000000e+01,開啟上面建立的 file-backup.xml,將這個數值記錄在正確的位置。

4. 修改後,用 rrdtool 的 restore 功能復原數據:

先將原來的 RRD 資料檔搬到其他位置:

# mv /usr/local/rrd/file.rrd /usr/local/rrd/file.rrd.bak

復原數據:

# rrdtool restore file-backup.xml /usr/local/rrd/file.rrd

這樣便完成了,當下次用 rrdtool graph 更新 RRD 圖片時,便會產生正確的統計圖。

The post RRD 修改舊資料數值 appeared first on Linux 技術手札.

转载请注明:我是IT » RRD 修改舊資料數值

喜欢 (0)or分享 (0)