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