]> git.ozlabs.org Git - petitboot/blob - utils/pb-sos
lib/efi: Cleanup read/write routines
[petitboot] / utils / pb-sos
1 #!/bin/sh
2
3 diagdir="diag"
4 tarfile="pb-sos.tar"
5 tarflags="-cf"
6 corefile="/core"
7 verbose=0
8
9 usage() {
10         echo "usage: $0 [-v] [-f file] [-d user@host:/path]"
11 }
12
13 log() {
14         if [ $verbose -eq 1 ]
15         then
16                 echo $1
17         fi
18 }
19
20 ARGS=`getopt vd:f:h "$@"`
21 rc=$?
22 set -- $ARGS
23 if [ $# -lt 1 ] || [ $rc -ne 0 ]; then
24         usage
25         exit 1
26 fi
27
28 while [ $# -gt 0 ]
29 do
30     case "$1" in
31         -v)     verbose=1; tarflags="--verbose $tarflags";;
32         -f)     tarfile="$2"; shift;;
33         -d)     desthost="$2"; shift;;
34         --)     shift; break;;
35         -h)
36                 usage
37                 exit 1;;
38         -*)
39                 usage
40                 exit 1;;
41         *)      break;;
42     esac
43     shift
44 done
45
46 mkdir -p /$diagdir
47
48 # Include version of pb-discover
49 pb-discover --version > /$diagdir/version
50
51 # Unconditionally grab relevant /var/log files
52 log "Adding files from /var/log"
53 cp -r /var/log/messages /var/log/petitboot /$diagdir/
54
55 # Check if pb-discover segfaulted
56 if [ -r $corefile ]
57 then
58         log "Adding core dump"
59         cp /core /$diagdir/
60 fi
61
62 # Copy dmesg
63 log "Adding dmesg"
64 dmesg > /$diagdir/dmesg
65
66 # Add Skiboot log
67 log "Adding Skiboot log"
68 cat /sys/firmware/opal/msglog > /$diagdir/msglog
69
70 log "Compressing..."
71 cd /
72
73 tar $tarflags $tarfile $diagdir
74 gzip < $tarfile > $tarfile.gz
75 rm -f $tarfile
76 tarfile="$tarfile.gz"
77
78 echo "Complete, tarfile location $tarfile"
79
80 # Optionally scp out to a host
81 if [ -n "${desthost+1}" ]; then
82         echo "Copying to remote host $desthost"
83         scp $tarfile $desthost
84 fi