#!/bin/bash TMPDIR=/tmp/micdebug DATESTAMP=`date +%d%m%Y-%k%M%S` CURDIR=`pwd` VERSION="0.3" # Is the user root? if [ "$(id -u)" != "0" ]; then echo "This script must be run as root" 1>&2 exit 1 fi setup() { echo "micdebug" ${VERSION} rm -rf ${TMPDIR} 2>/dev/null mkdir ${TMPDIR} } d_dmesg() { echo "Saving kernel log (dmesg)..." dmesg > ${TMPDIR}/dmesg.log } d_dmidecode() { echo "Saving system info (dmidecode)..." dmidecode > ${TMPDIR}/dmidecode.log } d_net(){ echo "Saving network info (ifconfig & /etc/hosts)..." ifconfig > ${TMPDIR}/ifconfig.log cp /etc/hosts ${TMPDIR}/hosts } d_lspci(){ echo "Saving PCI device info (lspci -v)..." lspci -vvvvv > ${TMPDIR}/lspci.log } d_pcitop(){ echo "Saving PCI topology info (lspci -Dtv)..." lspci -Dtv > ${TMPDIR}/lspci_top.log } d_message(){ echo "Saving system log (/var/log/messages)..." cp /var/log/messages ${TMPDIR}/messages.log } d_mpssrpm(){ echo "Saving installed MPSS RPM versions (rpm -qa)..." rpm -qa | grep intel-mic >> ${TMPDIR}/mpss_rpms.log } d_os(){ echo "Saving OS info (uname && /etc/release).." uname -a >> ${TMPDIR}/os.log cat /etc/*-release* >> ${TMPDIR}/os.log 2>/dev/null } d_micinfo(){ echo "Saving micinfo output..." /opt/intel/mic/bin/micinfo > ${TMPDIR}/micinfo.log 2>&1 } d_mpssdlog(){ echo "Saving mpssd log file..." cp /var/log/mpssd ${TMPDIR}/mpssd.log 2>&1 } d_sysconfig(){ echo "Saving configs from /etc/sysconfig/mic..." cp -R /etc/sysconfig/mic ${TMPDIR}/sysconfig 2>&1 } d_debugfs(){ echo "Mounting debugfs..." mount -t debugfs none /sys/kernel/debug echo "Saving coprocessor OS kernel logs..." cp -R /sys/kernel/debug/mic_debug ${TMPDIR}/mic_debugfs 2>&1 } archive(){ echo "Creating archive..." cd ${TMPDIR} zip -qr ${CURDIR}/micdebug-${DATESTAMP}.zip * cd ${CURDIR} echo "Created micdebug-${DATESTAMP}.zip" } setup d_dmesg d_dmidecode d_net d_lspci d_pcitop d_message d_mpssrpm d_os d_micinfo d_mpssdlog d_sysconfig d_debugfs archive echo "Done!"