]> git.proxmox.com Git - ceph.git/blame - ceph/src/multi-dump.sh
bump version to 12.2.2-pve1
[ceph.git] / ceph / src / multi-dump.sh
CommitLineData
7c673cae
FG
1#!/bin/bash
2
3#
4# multi-dump.sh
5#
6# Dumps interesting information about the Ceph cluster at a series of epochs.
7#
8
9### Functions
10usage() {
11 cat <<EOF
12multi-dump.sh: dumps out ceph maps
13
14-D Enable diff-mode
15-e <start-epoch> What epoch to end with.
16-h This help message
17-s <start-epoch> What epoch to start with. Defaults to 1.
18-t <map-type> What type of map to dump. Defaults to osdmap.
19 Valid map types are: osdmap,
20EOF
21}
22
23cleanup() {
24 [ -n ${TEMPDIR} ] && rm -rf "${TEMPDIR}"
25}
26
27die() {
28 echo $@
29 exit 1
30}
31
32dump_osdmap() {
33 for v in `seq $START_EPOCH $END_EPOCH`; do
34 ./ceph osd getmap $v -o $TEMPDIR/$v >> $TEMPDIR/cephtool-out \
35 || die "cephtool failed to dump epoch $v"
36 done
37 if [ $DIFFMODE -eq 1 ]; then
38 for v in `seq $START_EPOCH $END_EPOCH`; do
39 ./osdmaptool --print $TEMPDIR/$v > $TEMPDIR/$v.out
40 done
41 cat $TEMPDIR/$START_EPOCH.out
42 E=$((END_EPOCH-1))
43 for v in `seq $START_EPOCH $E`; do
44 S=$((v+1))
45 echo "************** $S **************"
46 diff $TEMPDIR/$v.out $TEMPDIR/$S.out
47 done
48 else
49 for v in `seq $START_EPOCH $END_EPOCH`; do
50 echo "************** $v **************"
51 ./osdmaptool --print $TEMPDIR/$v \
52 || die "osdmaptool failed to print epoch $v"
53 done
54 fi
55}
56
57### Setup
58trap cleanup INT TERM EXIT
59TEMPDIR=`mktemp -d`
60MYDIR=`dirname $0`
61MYDIR=`readlink -f $MYDIR`
62MAP_TYPE=osdmap
63cd $MYDIR
64
65### Parse arguments
66DIFFMODE=0
67START_EPOCH=1
68END_EPOCH=0
69
70while getopts "De:hs:t:" flag; do
71case $flag in
72 D) DIFFMODE=1;;
73
74 e) END_EPOCH=$OPTARG;;
75
76 h) usage
77 exit 0
78 ;;
79
80 s) START_EPOCH=$OPTARG;;
81
82 t) MAP_TYPE=$OPTARG;;
83
84 *) usage
85 exit 1;;
86esac
87done
88[ $END_EPOCH -eq 0 ] && die "You must supply an end epoch with -e"
89
90### Dump maps
91case $MAP_TYPE in
92 "osdmap") dump_osdmap;;
93
94 *) die "sorry, don't know how to handle MAP_TYPE '$MAP_TYPE'"
95esac
96
97exit 0