1#!/bin/bash 2 3INPUT=$1 4OUTPUT=$2 5 6if [ -z "$INPUT" -o -z "$OUTPUT" ] 7then 8 cat <<USAGE 9Usage: $0 <input> <output> 10USAGE 11 exit 1 12fi 13 14if [ ! -e "$INPUT" ] 15then 16 echo "No such file: $INPUT" 17 exit 1 18fi 19 20if [ -e "$OUTPUT" ] 21then 22 echo "File exists: $OUTPUT" 23 exit 1 24fi 25 26NUM_DS=0 27rrdtool dump "$INPUT" | while read LINE 28do 29 echo "$LINE" 30 31 if [ "$LINE" = "<ds>" ] 32 then 33 NUM_DS=$(($NUM_DS + 1)) 34 fi 35 36 if [ "$LINE" = "<!-- Round Robin Archives -->" ] 37 then 38 for CF in MIN MAX AVERAGE 39 do 40 cat <<RRA 41 <rra> 42 <cf> $CF </cf> 43 <pdp_per_row> 1 </pdp_per_row> 44 <xff> 0.0000000000e+00 </xff> 45 46 <cdp_prep> 47RRA 48 for ((i=0; i < $NUM_DS; i++)) 49 do 50 echo " <ds><value> NaN </value> <unknown_datapoints> 1 </unknown_datapoints></ds>" 51 done 52 echo " </cdp_prep>" 53 echo " <database>" 54 55 DS_VALUES=`for ((i=0; i < $NUM_DS; i++)); do echo -n "<v> NaN </v>"; done` 56 for ((i=0; i < 2200; i++)) 57 do 58 echo " <!-- $i --> <row>$DS_VALUES</row>" 59 done 60 echo " </database>" 61 echo " </rra>" 62 done 63 fi 64done >"$OUTPUT.xml" 65 66rrdtool restore "$OUTPUT.xml" "$OUTPUT" -r >/dev/null 67rm -f "$OUTPUT.xml" 68