于 2012年07月04日 09:48, mozatkey 写道: > thanks Karl, about #2 > > i am trying this: > 1.rrdtool dump old.rrd tmp.xml > 2.modify tmp.xml add HWPREDICT SEASONAL DEVSEASONAL DEVPREDICT > FAILURES default unkonwn > 3.rrdtool restore tmp.xml new.rrd > i did this on my rrd files. > if it works, i will response you as soon as possible. > and observed for a week, it works very well. > > 于 2012年07月02日 23:20, Karl Fischer 写道: >> Am 02.07.2012 11:21, schrieb mozatkey: >>> hi,all: >>> >>> 1. How can I get the creating script if only having xxx.rrd ? >>> There are a lot of rrd files, i can't get all the creating script for >>> each one, because they have been modified many times by handle >>> operation. >>> >>> 2.How can I set the HWPREDICT with those old rrd files? >>> These old rrds files don't set the HWPREDICT, but now i have to use it. >>> >>> 3. Is there any orders like: "show create rrd" and "alter xxx.rrd add >>> HWPREDICT" in rrdtool , just as what we did in pl/sql? >> can't answer #2, but as a "show create" I'm using a little bash script. >> On purpose it's bash only, no sed, no awk, no perl etc. >> >> It's not perfect (eg. doesn't support the HWPREDICT stuff etc.) but it >> works for my purpose. Feel free to add the missing functions ... >> >> it works like this: >> >> showcreate.sh /tmp/CPU.rrd >> >> rrdtool create "/tmp/CPU.rrd" >> --step 2 >> DS:loadavg:GAUGE:120:0:1e+03 >> DS:user:COUNTER:120:0:1e+02 >> DS:nice:COUNTER:120:0:1e+02 >> DS:system:COUNTER:120:0:1e+02 >> DS:iowait:COUNTER:120:0:1e+02 >> DS:irq:COUNTER:120:0:1e+02 >> DS:softrq:COUNTER:120:0:1e+02 >> RRA:AVERAGE:5e-01:2:345600 >> RRA:AVERAGE:5e-01:30:576000 >> RRA:AVERAGE:5e-01:300:157680 >> RRA:AVERAGE:5e-01:1800:52560 >> >> >> $ cat /usr/local/bin/showcreate.sh >> >> #!/bin/bash >> >> RRDTOOL=($(which rrdtool)) >> >> function rrdinfo() { >> $RRDTOOL info $1 \ >> | while read line; do >> key=${line%% = *} >> pri=${key%%[*} >> ind=${key%%]*} >> ind=${ind##*[} >> sub=${key##*.} >> value=${line##* = } >> num=${value/0000e/e} >> num=${num/0000e/e} >> num=${num/00e/e} >> num=${num/0e/e} >> num=${num/.e/e} >> num=${num/e+00/} >> num=${num/#NaN/U} >> case "$pri" in >> filename) >> echo "rrdtool create $value" >> ;; >> step) >> echo -e "\t--step $value" >> ;; >> ds) >> case "$sub" in >> value) >> echo -e "\tDS:$DS:$TYPE:$HB:$MIN:$MAX" >> ;; >> type) >> DS=$ind >> TYPE=${value//\"} >> case "$TYPE" in >> GAUGE|COUNTER|DERIVE|ABSOLUTE) >> # ok >> ;; >> *) >> echo "unknown data source type $TYPE" >> exit 1 >> ;; >> esac >> ;; >> minimal_heartbeat) >> HB=$value >> ;; >> min) >> MIN=$num >> ;; >> max) >> MAX=$num >> ;; >> esac >> ;; >> rra) >> case "$sub" in >> unknown_datapoints) >> if [ -n "$CF" ]; then >> echo -e "\tRRA:$CF:$XFF:$PDPS:$ROWS" >> CF="" >> fi >> ;; >> cf) >> CF=${value//\"} >> case "$CF" in >> AVERAGE|MIN|MAX|LAST) >> # OK >> ;; >> *) >> echo "unknown consolidation $CF" >> exit 1 >> ;; >> esac >> ;; >> xff) >> XFF=$num >> ;; >> pdp_per_row) >> PDPS=$num >> ;; >> rows) >> ROWS=$num >> ;; >> esac >> ;; >> esac >> done >> echo "" >> } >> >> while [ -n "$1" ]; do >> if [ -r $1 ]; then >> rrdinfo $1 >> fi >> shift >> done > >
_______________________________________________ rrd-users mailing list rrd-users@lists.oetiker.ch https://lists.oetiker.ch/cgi-bin/listinfo/rrd-users