#!/bin/bash
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
}
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"/"
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/redhat-release $WORK_DIR
cp -p /etc/sysctl.conf $WORK_DIR
cp -p /etc/passwd $WORK_DIR
cp -p /etc/group $WORK_DIR
TMP=`uname -r|cut -c 1-3`
if [ $TMP = "2.6" ];then
cp -p /etc/modprobe.conf $WORK_DIR
cp -p /etc/X11/xorg.conf $WORK_DIR
elif [ $TMP = "2.4" ];then
cp -p /etc/modules.conf $WORK_DIR
cp -p /etc/X11/XF86Config* $WORK_DIR
fi
echo "#### Command Section ####"
echo "chkconfig --list"
chkconfig --list > $WORK_DIR/chkconfig--list.txt
echo "crontab -l"
crontab -l > $WORK_DIR/crontab-l.txt
echo "df -k"
df -k > $WORK_DIR/df-k.txt
echo "dmesg"
dmesg > $WORK_DIR/dmesg.txt
echo "date"
date > $WORK_DIR/date.txt
echo "du /"
du / > $WORK_DIR/du.txt
echo "env"
env > $WORK_DIR/env.txt
echo "ethtool"
ifconfig |grep eth|cut -d" " -f 1|
while read LINE
do
ethtool $LINE >> $WORK_DIR/ethtool.txt
done
echo "fdisk -l"
fdisk -l > $WORK_DIR/fdisk-l.txt
echo "free"
free > $WORK_DIR/free.txt
echo "hostname"
hostname > $WORK_DIR/hostname.txt
echo "hwclock -r"
hwclock -r > $WORK_DIR/hwclock-r.txt
echo "ifconfig -a"
ifconfig -a > $WORK_DIR/ifconfig-a.txt
echo "ipcs -al"
ipcs -al > $WORK_DIR/ipcs-al.txt
echo "ipcs -au"
ipcs -au > $WORK_DIR/ipcs-au.txt
echo "last"
last > $WORK_DIR/last.txt
echo "lastlog"
lastlog > $WORK_DIR/lastlog.txt
echo "ls"
ls -alR / > $WORK_DIR/ls-alR.txt
echo "lsmod"
lsmod > $WORK_DIR/lsmod.txt
echo "lspci -vv"
lspci -vv > $WORK_DIR/lspci-vv.txt
echo "mount"
mount > $WORK_DIR/mount.txt
echo "netstat -a"
netstat -a > $WORK_DIR/netstat-a.txt
echo "netstat -an"
netstat -an > $WORK_DIR/netstat-an.txt
echo "netstat -ap"
netstat -ap > $WORK_DIR/netstat-ap.txt
echo "netstat -r"
netstat -r > $WORK_DIR/netstat-r.txt
echo "ps auxw"
ps auxw > $WORK_DIR/ps-auxw.txt
echo "route -n"
route -n > $WORK_DIR/route-n.txt
echo "rpm -qa"
rpm -qa | sort > $WORK_DIR/rpm-qa.txt
echo "rpm -qai"
rpm -qai > $WORK_DIR/rpm-qai.txt
echo "rpm -qa with arch"
rpm -qa --qf "%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n" | \
sort > $WORK_DIR/rpm-qa_with_arch.txt
#echo "rpm -Va"
#rpm -Va > $WORK_DIR/rpm-Va.txt
#echo "service --status-all"
#service --status-all > $WORK_DIR/service--status-all.txt
echo "set"
set > $WORK_DIR/set.txt
echo "swapon -s"
swapon -s > $WORK_DIR/swapon-s.txt
echo "sysctl -a"
sysctl -a > $WORK_DIR/sysctl-a.txt
echo "ulimit -a"
ulimit -a > $WORK_DIR/ulimit-a.txt
echo "uname -a"
uname -a > $WORK_DIR/uname-a.txt
echo "uptime"
uptime > $WORK_DIR/uptime.txt
echo "vmstat"
vmstat > $WORK_DIR/vmstat.txt
TMP=$1"/"$NOW".tar"
if GetYN "make $TMP".bz2" OK?" ;then
tar cvf $TMP $WORK_DIR
bzip2 -9 $TMP
else
exit
fi