From 19fcec84d8d7d21e796c7624e521b60d28ee21ed Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 20:45:59 +0200 Subject: Adding upstream version 16.2.11+ds. Signed-off-by: Daniel Baumann --- src/ceph-debugpack.in | 113 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 113 insertions(+) create mode 100644 src/ceph-debugpack.in (limited to 'src/ceph-debugpack.in') diff --git a/src/ceph-debugpack.in b/src/ceph-debugpack.in new file mode 100644 index 000000000..fc6179646 --- /dev/null +++ b/src/ceph-debugpack.in @@ -0,0 +1,113 @@ +#!/bin/sh + +# if we start up as ./init-ceph, assume everything else is in the +# current directory too. +if [ `dirname $0` = "." ] && [ $PWD != "/etc/init.d" ]; then + BINDIR=. + LIBEXECDIR=. + ETCDIR=. +else + BINDIR=@bindir@ + LIBEXECDIR=@libexecdir@/ceph + ETCDIR=@sysconfdir@/ceph +fi + +BINDBGDIR="/usr/lib/debug/usr/bin" + +usage_exit() { + echo "usage: $0 [-c ceph.conf] " + exit +} + +wait_pid_exit() { + pid=$1 + + for i in $(seq 10); do + [ -e /proc/$pid ] || return + sleep 1 + done + if [ -e /proc/$pid ]; then + echo Killing pid $pid + kill $pid + fi +} + +. $LIBEXECDIR/ceph_common.sh + +dest_tar='' +while [ $# -ge 1 ]; do +case $1 in + --conf | -c) + [ -z "$2" ] && usage_exit + shift + conf=$1 + ;; + *) + if [ -n "$dest_tar" ]; then + echo unrecognized option \'$1\' + usage_exit + fi + dest_tar=$1 + ;; +esac +shift +done + +[ "$dest_tar" = "" ] && usage_exit + +echo "$0: generating debugpack tarball..." + +if [ -e $dest_tar ]; then + echo "$0: dest $dest_tar already exists, aborting" + exit 1 +fi + +# get absolute path for dest_tar +bins="ceph-mon ceph-mds ceph-osd radosgw" +core_paths="/ $BINDIR $BINDBGDIR" +[ "$conf" = "" ] && conf=$ETCDIR/ceph.conf +log_path=`$CCONF -c $conf "log dir"` + +[ -z "$conf" ] && usage_exit + +# all configs +files='/etc/ceph' + +# binaries +for bin in bins; do + if [ -e "/usr/bin/$bin" ]; then + files="$files /usr/bin/$bin" + fi + if [ -e "/usr/lib/debug/usr/bin/$bin" ]; then + files="$files /usr/lib/debug/usr/bin/$bin" + fi +done + +# logs (the non-rotated ones) +for f in `find $path -maxdepth 1 -name 'core*'`; do + files="$files $f" +done + +# copy cores (if exist) +for path in $core_paths; do + if [ -d $path ]; then + for f in `find $path -maxdepth 1 -name 'core*'`; do + files="$files $f" + done + fi +done + +# cluster state +tmp_path=`mktemp -d /tmp/ceph-debugpack.XXXXXXXXXX` + +$BINDIR/ceph report > $tmp_path/ceph-report & +wait_pid_exit $! + +files="$files $tmp_path" + +# now create a tarball +tar cvfz $dest_tar $files +rm -rf $tmp_path + +echo "$0: created debugpack tarball at $dest_tar" + -- cgit v1.2.3