#!/bin/bash

#
# Script to print out TUX state and various other
# information about the system's state.
# Used primarily to help debug TUX issues.
#

if [ "$UID" != "0" ]; then
   echo "please run this script as root!"
   exit
fi


echo "getting TUX and TCP config..." 1>&2 
echo
echo "===========> TUX and TCP config:"

for N in `find /proc/sys /proc/net/ | grep -v /proc/net/tcp`; do echo "$N: `cat $N 2>/dev/null`"; done |
grep -E '/proc/sys|/proc/net' | grep -v ': 0$' | grep -v ': $' |
grep -vE '/proc/sys/dev/cdrom|/proc/sys/fs/file-nr|/proc/sys/fs/inode-nr|/proc/sys/net/ipv4/conf|/proc/sys/net/ipv4/neigh|/proc/sys/net/ipv4/route|/proc/sys/vm/bdflush|/proc/sys/vm/buffermem|/proc/sys/vm/pagecache|/proc/sys/vm/kswapd|/proc/sys/vm/pagetable_cache|/proc/sys/kernel/random|/proc/sys/vm/freepages|/proc/sys/kernel/threads-max|/proc/sys/fs/dentry-state|/proc/sys/fs/inode-state|/proc/sys/fs/dquot|/proc/sys/fs/super-nr|proc/sys/fs/file-max|/proc/sys/net/ipv4/icmp'

echo "getting boot log..." 1>&2 
echo
echo "===========> boot log:"
dmesg -s 10000000

echo "getting interrupts..." 1>&2 
echo
echo "===========> interrupts:"
cat /proc/interrupts

echo "getting CPU info..." 1>&2 
echo
echo "===========> CPU info:"
cat /proc/cpuinfo

echo "getting 5 seconds 'top' output..." 1>&2 
echo
echo "===========> CPU usage info:"
top n 2 d 5

echo "getting memory info..." 1>&2 
echo
echo "===========> Memory info:"
cat /proc/meminfo

echo "getting IRQ affinity settings..." 1>&2 
echo
echo "===========> IRQ affinity settings:"
for N in /proc/irq/*/*; do echo -n "$N: "; cat $N; done

echo "getting network interface settings..." 1>&2 
echo
echo "===========> network interface settings:"
ifconfig

echo "getting SLAB config..." 1>&2 
echo
echo "===========> SLAB config:"
cat /proc/slabinfo

echo "getting mount info..." 1>&2 
echo
echo "===========> mount info:"
mount

echo "getting swap info..." 1>&2 
echo
echo "===========> swap info:"
cat /proc/swaps

echo "getting RAID info..." 1>&2 
echo
echo "===========> RAID info:"
cat /proc/mdstat

echo "getting ps output..." 1>&2 
echo
echo "===========> process statistics:"
ps auxwww

echo "getting /proc/stat..." 1>&2 
echo
echo "===========> various statistics:"
cat /proc/stat

echo "getting lspci output..." 1>&2 
echo
echo "===========> lspci PCI devices:"
lspci

echo "getting /proc/pci output..." 1>&2 
echo
echo "===========> /proc/pci PCI devices:"
cat /proc/pci

echo "getting kernel version..." 1>&2 
echo
echo "===========> kernel version:"
cat /proc/version

echo "getting system messages..." 1>&2 
echo
echo "===========> messages:"
tail -1000 /var/log/messages

echo "getting kernel boot parameters..." 1>&2 
echo
echo "===========> boot parameters:"
cat /proc/cmdline

echo "getting MTRR settings..." 1>&2 
echo
echo "===========> MTRR settings:"
cat /proc/mtrr

echo "getting 5 seconds of vmstat output..." 1>&2 
echo
echo "===========> vmstat output:"
vmstat -n 1 5

