]> git.openstreetmap.org Git - chef.git/blob - cookbooks/munin/files/default/rrddump.sh
Make the rrddump.sh script do all the work, including cleanup.
[chef.git] / cookbooks / munin / files / default / rrddump.sh
1 #!/bin/bash
2
3 RRD_DIR=/var/lib/munin/openstreetmap
4 DIR=`mktemp -d`
5 DUMP_DIR=/srv/munin.openstreetmap.org/dumps
6 TARGET_TGZ=`date "+munin-data-%Y-%m-%d.tar.gz"`
7 KEEP_OLD_COUNT=3
8
9 function cleanup {
10   rm -rf "$DIR"
11 }
12
13 trap cleanup EXIT
14
15 set -e
16
17 cd "$RRD_DIR"
18 for f in *.rrd; do
19   rrdtool dump "$f" "$DIR/${f}.xml"
20   touch -r "$f" "$DIR/${f}.xml"
21 done
22
23 cd "$DIR"
24 find -name "*.xml" -print0 | tar zcf "dump.tar.gz" --null -T -
25
26 # if we got here, then the file was created okay so we're okay to delete any
27 # old files.
28 find "${DUMP_DIR}" -name "munin-data-*.tar.gz" -print0 | \
29     sort -z -r | \
30     tail -z -n "+${KEEP_OLD_COUNT}" | \
31     xargs --null rm -f
32
33 mv dump.tar.gz "${DUMP_DIR}/${TARGET_TGZ}"