récup. oldies rrd-resize-double
This commit is contained in:
parent
d5bc036d26
commit
4e915e750e
1 changed files with 45 additions and 0 deletions
45
oldies/rrd-resize-double.sh
Executable file
45
oldies/rrd-resize-double.sh
Executable file
|
@ -0,0 +1,45 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# This script simply takes a rrd file and doubles the rows of all its RRA
|
||||||
|
#
|
||||||
|
# Result in tmp.rrd
|
||||||
|
#
|
||||||
|
# Make backups before any important use !
|
||||||
|
|
||||||
|
RESULT_FILENAME="result.rrd"
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
if [ ! -f "$1" ]; then
|
||||||
|
echo "ERROR: no file specified." >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
SRC="$1"
|
||||||
|
DST="$( dirname "$SRC" )/$RESULT_FILENAME"
|
||||||
|
# rrdtool seems to always create in current directory
|
||||||
|
RRD_SPECIAL_FILE="resize.rrd"
|
||||||
|
|
||||||
|
if [ -f "$RRD_SPECIAL_FILE" ] || [ -f "$DST" ]; then
|
||||||
|
echo "ERROR: files with names '$RRD_SPECIAL_FILE' or '$DST' already exist. Trouble ?" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Initial copy
|
||||||
|
cp -ai "$SRC" "$DST"
|
||||||
|
|
||||||
|
# Only use the SRC for enumeration : all the work after that is done on DST
|
||||||
|
rrdtool info "$SRC" | grep rows | while read LINE; do
|
||||||
|
RRANUM="$( echo "$LINE" | sed 's/.*\[\([0-9]\+\)\].rows.*/\1/' )"
|
||||||
|
ROWS="$( echo "$LINE" | sed 's/.* = //' )"
|
||||||
|
if [ -z "$RRANUM" ] || [ -z "$ROWS" ]; then
|
||||||
|
echo "Trouble at the mill." >&2
|
||||||
|
exit 2
|
||||||
|
fi
|
||||||
|
|
||||||
|
rrdtool resize "$DST" $RRANUM GROW $ROWS && mv "$RRD_SPECIAL_FILE" "$DST"
|
||||||
|
done
|
||||||
|
|
||||||
|
# I often forget this one...
|
||||||
|
chmod "--reference=$SRC" "$DST"
|
||||||
|
chown "--reference=$SRC" "$DST"
|
Loading…
Reference in a new issue