2 # a script to test the basic setup of a CTDB/Samba install
3 # tridge@samba.org September 2007
5 PATH="$PATH:/sbin:/usr/sbin:/usr/lpp/mmfs/bin"
7 CONFIG_FILES="/etc/krb5.conf /etc/hosts /etc/ctdb/nodes /etc/sysconfig/ctdb /etc/ctdb/public_addresses /etc/resolv.conf /etc/nsswitch.conf /etc/sysctl.conf /etc/samba/smb.conf /etc/fstab"
12 --------------------------------------------------------------------
13 ctdb_diagnostics starting. This script will gather information about
14 your ctdb cluster. You should send the output of this script along
15 with any ctdb or clustered Samba bug reports.
16 --------------------------------------------------------------------
24 NUM_ERRORS=`expr $NUM_ERRORS + 1`
25 echo " ERROR[$NUM_ERRORS]: $msg" >> $ERRORS
30 echo " ================================"
32 echo " `ls -l $fname`"
33 cat "$fname" | sed 's/^/ /'
34 echo " ================================"
38 echo "running $1 on all nodes"
39 onnode all "hostname; date; $1 2>&1 | sed 's/^/ /'"
42 ERRORS="/tmp/diag_err.$$"
43 NUM_NODES=`wc -l < /etc/ctdb/nodes`
44 MAX_NODE=`expr $NUM_NODES - 1`
47 Diagnosis started on a $NUM_NODES node cluster. The following node list will be used:
49 show_file /etc/ctdb/nodes
53 --------------------------------------------------------------------
54 Comping critical config files on all nodes
57 for f in $CONFIG_FILES; do
63 for i in `seq 0 $MAX_NODE`; do
64 echo "Testing for same config file $f on node $i"
65 tmpf=/tmp/`basename $f`.node$i
66 onnode $i cat $f > $tmpf
68 error "File $f is different on node $i"
76 --------------------------------------------------------------------
77 Checking for clock drift
80 for i in `seq 0 $MAX_NODE`; do
81 t2=`onnode $i date +%s`
83 if [ $d -gt 30 -o $d -lt -30 ]; then
84 error "time on node $i differs by $d seconds"
89 --------------------------------------------------------------------
90 Showing software versions
94 show_all "rpm -qa | egrep 'samba|ctdb|gpfs'"
99 --------------------------------------------------------------------
100 Showing ctdb status and recent log entries
102 show_all "ctdb status; ctdb ip"
103 show_all "ctdb statistics"
105 echo "Showing log.ctdb"
106 show_all "tail -100 /var/log/log.ctdb"
108 echo "Showing log.ctdb"
109 show_all "tail -100 /var/log/log.ctdb"
113 --------------------------------------------------------------------
114 Showing system and process status
116 show_all "df; df -i; mount"
120 show_all "/sbin/lspci"
121 show_all "/sbin/ifconfig -a"
122 show_all "/sbin/ip addr list"
123 show_all "/sbin/route -n"
124 show_all "crontab -l"
127 [ -d /usr/lpp/mmfs ] && {
129 --------------------------------------------------------------------
130 Showing GPFS status and recent log entries
132 echo "Showing mmfs.log.latest"
133 show_all "tail -100 /var/adm/ras/mmfs.log.latest"
134 show_all "/usr/lpp/mmfs/bin/mmlsconfig"
135 show_all "/usr/lpp/mmfs/bin/mmlsfs all"
136 show_all "/usr/lpp/mmfs/bin/mmlsnsd"
137 show_all "/usr/lpp/mmfs/bin/mmfsadm dump version"
138 show_all "/usr/lpp/mmfs/bin/mmfsadm dump waiters"
139 show_all "/usr/lpp/mmfs/bin/mmlsmount all"
140 show_all "/usr/lpp/mmfs/bin/mmlsquota"
141 show_all "/usr/lpp/mmfs/bin/mmlscluster"
142 show_all "/usr/lpp/mmfs/bin/mmlsmgr"
143 fslist=`mount|grep type.gpfs|awk '{print $1}'`
144 for fs in $fslist; do
145 show_all "/usr/lpp/mmfs/bin/mmlssnapshot $fs"
146 show_all "/usr/lpp/mmfs/bin/mmlsdisk $fs"
147 show_all "/usr/lpp/mmfs/bin/mmlsfileset $fs"
152 --------------------------------------------------------------------
155 show_all "smbstatus -n -B"
156 show_all "net ads testjoin"
157 show_all "lsof -n | grep smbd"
158 show_all "netstat -tan"
159 show_all "net ads info"
161 show_all "smbclient -U% -L 127.0.0.1"
162 WORKGROUP=`testparm -s --parameter-name=WORKGROUP 2> /dev/null`
163 show_all id "$WORKGROUP/Administrator"
165 show_all "wbinfo --sequence"
169 echo "Diagnostics finished with $NUM_ERRORS errors"