discover/status: report on PXE download failures
[petitboot] / utils / pb-sos
1 #!/bin/sh
2
3 diagdir="diag"
4 tarfile="pb-sos.tar"
5 tarflags=""
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="$tarflags --verbose";;
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 log "Compressing..."
67 cd /
68 tar $tarflags -cf $tarfile $diagdir
69
70 echo "Complete, tarfile location $tarfile"
71
72 # Optionally scp out to a host
73 if [ -n "${desthost+1}" ]; then
74         echo "Copying to remote host $desthost"
75         scp $tarfile $desthost
76 fi