tips/shells/getinfo3

Last-modified: 2009-04-14 (火) 00:21:37
#!/bin/bash
set -u
GetYN() {
	_ANS=""
	while :
	do
		echo -e "$@ [y/n?] \c"
		read _ANS
		case "$_ANS" in
			[yY] | yes | YES | Yes )        return 0 ;;
			[nN] | no  | NO  | No  )        return 1 ;;
			* ) echo "Please Enter y or n." ;;
		esac
	done
}
CmdExec() {
	echo $1
	echo "#### $1 ####" >> $WORK_FILE
#	$1 >> $WORK_FILE
	bash -c "$1" >> $WORK_FILE
	echo "" >> $WORK_FILE
}
if [ $# != 1 ];then
echo "Usage:`basename $0` BKUP_DIR"
exit
fi
export LANG=C
NOW=`date +%Y%m%d%H%M`
WORK_DIR=$1"/"$NOW"/"
WORK_FILE=$WORK_DIR"/"result.txt
CMD=""
TMP=""
if GetYN "mkdir $WORK_DIR OK?" ;then
:
else
exit
fi
mkdir $WORK_DIR
if [ $? != 0 ];then
echo "mkdir Error!!"
exit
fi
echo "#### Copy Section ####"
cp -p /root/anaconda-ks.cfg $WORK_DIR
cp -p /etc/hosts $WORK_DIR
cp -p /etc/sysconfig/network-scripts/ifcfg-* $WORK_DIR
cp -p /etc/ld.so.conf $WORK_DIR
cp -p /lib/modules/`uname -r`/modules.dep $WORK_DIR
cp -p /etc/sysconfig/network $WORK_DIR
cp -p /etc/resolv.conf $WORK_DIR
cp -p /etc/fstab $WORK_DIR
cp -p /var/log/messages* $WORK_DIR
cp -p /proc/cpuinfo $WORK_DIR
cp -p /proc/meminfo $WORK_DIR
cp -p /etc/sysctl.conf $WORK_DIR
cp -p /etc/passwd $WORK_DIR
cp -p /etc/group $WORK_DIR
if [ -f /etc/modprobe.conf ];then
	cp -p /etc/modprobe.conf $WORK_DIR
fi
if [ -f /etc/X11/xorg.conf ];then
	cp -p /etc/X11/xorg.conf $WORK_DIR
fi
if [ -f /etc/modules.conf ];then
	cp -p /etc/modules.conf $WORK_DIR
fi
for i in /etc/*-release ; do
	if [ -f $i ];then
		cp -p $i $WORK_DIR
	fi
done
for i in /etc/X11/XF86Config* ; do
	if [ -f $i ];then
		cp -p $i $WORK_DIR
	fi
done
for i in /var/log/sa/sa?? ; do
	if [ -f $i ];then
		cp -p $i $WORK_DIR
	fi
done
echo "#### Command Section ####"
echo "#### Get Information Start at `date`" >> $WORK_FILE
echo "" >> $WORK_FILE
CMD="chkconfig --list"
CmdExec "$CMD"
CMD="crontab -l"
CmdExec "$CMD"
CMD="df -k"
CmdExec "$CMD"
CMD="dmesg"
CmdExec "$CMD"
CMD="date"
CmdExec "$CMD"
#CMD="du -k /"
#CmdExec "$CMD"
CMD="env"
CmdExec "$CMD"
ifconfig |grep eth|cut -d" " -f 1|
while read LINE
do
CMD="ethtool $LINE"
CmdExec "$CMD"
done
CMD="fdisk -l"
CmdExec "$CMD"
CMD="free"
CmdExec "$CMD"
CMD="hostname"
CmdExec "$CMD"
CMD="hwclock -r"
CmdExec "$CMD"
CMD="ifconfig -a"
CmdExec "$CMD"
CMD="ipcs -al"
CmdExec "$CMD"
CMD="ipcs -au"
CmdExec "$CMD"
CMD="iptables -L"
CmdExec "$CMD"
CMD="last"
CmdExec "$CMD"
CMD="lastlog"
CmdExec "$CMD"
CMD="ls -alR /"
CmdExec "$CMD"
CMD="lsmod"
CmdExec "$CMD"
CMD="lspci"
CmdExec "$CMD"
CMD="lspci -nv"
CmdExec "$CMD"
CMD="lspci -v"
CmdExec "$CMD"
CMD="lspci -vv"
CmdExec "$CMD"
CMD="lspci -vvv"
CmdExec "$CMD"
CMD="mount"
CmdExec "$CMD"
CMD="netstat -a"
CmdExec "$CMD"
CMD="netstat -an"
CmdExec "$CMD"
CMD="netstat -ap"
CmdExec "$CMD"
CMD="netstat -r"
CmdExec "$CMD"
CMD="ps auxww"
CmdExec "$CMD"
CMD="ps alxww"
CmdExec "$CMD"
CMD="route -n"
CmdExec "$CMD"
CMD="rpm -qa | sort"
CmdExec "$CMD"
CMD="rpm -qai"
CmdExec "$CMD"
CMD="rpm -qa --qf \"%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\\n\" | sort"
CmdExec "$CMD"
#CMD="rpm -Va"
#CmdExec "$CMD"
#CMD="service --status-all"
#CmdExec "$CMD"
CMD="set"
CmdExec "$CMD"
CMD="swapon -s"
CmdExec "$CMD"
CMD="sysctl -a"
CmdExec "$CMD"
CMD="ulimit -a"
CmdExec "$CMD"
CMD="uname -a"
CmdExec "$CMD"
CMD="uptime"
CmdExec "$CMD"
CMD="vmstat"
CmdExec "$CMD"
CMD="w"
CmdExec "$CMD"
echo "#### Additional Section ####"
#tar czvf ${WORK_DIR}etc_archive.tar.gz /etc
#TMP=$1"/"$NOW".tar"
#if GetYN "make $TMP".bz2" OK?" ;then
#tar cvf $TMP $WORK_DIR
#bzip2 -9 $TMP
#fi
TMP=$1"/"$NOW".tar.gz"
if GetYN "make $TMP OK?" ;then
tar czvf $TMP $WORK_DIR
fi
exit