#!/bin/sh diagdir="diag" tarfile="pb-sos.tar" tarflags="-cf" corefile="/core" verbose=0 usage() { echo "usage: $0 [-v] [-f file] [-d user@host:/path]" } log() { if [ $verbose -eq 1 ] then echo $1 fi } ARGS=`getopt vd:f:h "$@"` rc=$? set -- $ARGS if [ $# -lt 1 ] || [ $rc -ne 0 ]; then usage exit 1 fi while [ $# -gt 0 ] do case "$1" in -v) verbose=1; tarflags="--verbose $tarflags";; -f) tarfile="$2"; shift;; -d) desthost="$2"; shift;; --) shift; break;; -h) usage exit 1;; -*) usage exit 1;; *) break;; esac shift done mkdir -p /$diagdir # Include version of pb-discover pb-discover --version > /$diagdir/version # Unconditionally grab relevant /var/log files log "Adding files from /var/log" cp -r /var/log/messages /var/log/petitboot /$diagdir/ # Check if pb-discover segfaulted if [ -r $corefile ] then log "Adding core dump" cp /core /$diagdir/ fi # Copy dmesg log "Adding dmesg" dmesg > /$diagdir/dmesg # Add Skiboot log log "Adding Skiboot log" cat /sys/firmware/opal/msglog > /$diagdir/msglog log "Compressing..." cd / tar $tarflags $tarfile $diagdir gzip < $tarfile > $tarfile.gz rm -f $tarfile tarfile="$tarfile.gz" echo "Complete, tarfile location $tarfile" # Optionally scp out to a host if [ -n "${desthost+1}" ]; then echo "Copying to remote host $desthost" scp $tarfile $desthost fi