#freeze
 #!/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