[GRLUG] Backing up Linux Servers
Kaminski, Dennis J
Dennis.Kaminski at dematic.com
Tue Sep 12 09:37:06 EDT 2006
Here's a script I use to backup a system to a NFS mount on a HP-UX
system. By using a UNIX/Linux system, I can ssh the information back
during the restore. Since you're backing up to a M$ system, you'll have
to do something different when you restore the file systems.
The server has three file systems and is running RH ES4. The tar command
is used on the third file system because there are 4 gig files that the
32 bit version of cpio doesn't back up. You won't need the lines that
start with #--- because they are specific to stopping and starting the
SAP application. The additional information I gather up front is
overkill, but, its better to have too much than not enough.
#!/bin/bash
#
#
#---# get the 6th char of the system name (d, t or p)
#---XI_CHAR=`uname -n | cut -b6`
XI_NAME=`uname -n`
DIR=/bkup/$XI_NAME
mkdir -p $DIR
#---SAPLOG=$DIRsap.bounce.log
BKLOG=$DIR/drbkup_cpio.log
EMAILINFO=$DIR/email.info
#---echo " " > $SAPLOG
echo " " > $BKLOG
echo " " > $EMAILINFO
#
#---# stop sapXI
#---date +%Y-%m-%d' '%T >>$SAPLOG
#---su - xi${XI_CHAR}adm -c stopsap >>$SAPLOG 2>&1
#---date +%Y-%m-%d' '%T >>$SAPLOG
#
# gather information
INFO=$DIR/drbkup_info
cat /etc/resolv.conf > ${INFO}_etc_resolve_conf
cat /etc/fstab > ${INFO}_etc_fstab
cat /etc/hosts > ${INFO}_etc_hosts
cat /etc/redhat-release > ${INFO}_etc_redhat-release
cat /etc/issue > ${INFO}_etc_issue
df -h > ${INFO}_df-h
df -l > ${INFO}_df-l
df -i > ${INFO}_df-i
df -T > ${INFO}_df-T
/sbin/fdisk -l > ${INFO}_fdisk-l
/sbin/ifconfig > ${INFO}_ifconfig
uname -a > ${INFO}_uname-a
ls -laR / > ${INFO}_ls-laR 2>&1
for X in `/sbin/fdisk -l|cut -d" " -f1|grep dev`
do "/sbin/dumpe2fs $X" > ${INFO}_dumpe2fs`echo $X | tr \/ _` 2>&1
done
#
# backup the system
date +%Y-%m-%d' '%T >$BKLOG
set -o pipefail
cd /boot ; find . -xdev | cpio -oacv 2>>$BKLOG | gzip -c >
$DIR/drbkup_cpio_boot.gz 2>>$BKLOG
RC_boot=$?
cd / ; find . -xdev | cpio -oacv 2>>$BKLOG | gzip -c >
$DIR/drbkup_cpio_slash.gz 2>>$BKLOG
RC_slash=$?
tar -cvzf $DIR/drbkup_tar_sapdb.tgz /sapdb/* >>$BKLOG 2>>$BKLOG
RC_sapdb=$?
date +%Y-%m-%d' '%T >>$BKLOG
#
#---# start sapXI
#---date +%Y-%m-%d' '%T >>$SAPLOG
#---su - xi${XI_CHAR}adm -c startsap >>$SAPLOG 2>&1
#---date +%Y-%m-%d' '%T >>$SAPLOG
#
#
BKSTATUS="OK"
if [ $RC_boot != 0 ] ; then
BKSTATUS="Problem"
elif [ $RC_slash != 0 ] ; then
BKSTATUS="Problem"
elif [ $RC_sapdb != 0 ] ; then
BKSTATUS="Problem"
fi
echo '/ RC = ' $RC_slash > $EMAILINFO
echo '/boot RC = ' $RC_boot >> $EMAILINFO
echo '/sapdb RC = ' $RC_sapdb >> $EMAILINFO
echo ' ' >> $EMAILINFO
echo ' ' >> $EMAILINFO
#---cat $SAPLOG >> $EMAILINFO
mail -s "$BKSTATUS `hostname -s` `date +%Y%m%d_%H%M` nightly backup"
root at localhost <$EMAILINFO
#
exit
I use the following steps to rebuild the system:
1. Boot from Linux Install CD. Select the installation CD (install disk
#1) based on Red Hat version (e.g. RH7, RHES3, RHES4) and whether the
Linux installed was 32 bit or 64 bit.
2. Select linux rescue. Use "linux rescue" instead of "install". At the
first prompt that comes up (boot:), type "linux rescue". If you wait too
long, it will default to install.
3. Enter Network info. Use information from drbkup_info_ifconfig and
drbkup_info_etc_resolve_conf files.
4. Partition disk using fdisk.
fdisk devicename
where devicename is:
/dev/cciss/c0d0 for DL360 with hardware mirror disks or
/dev/sda for desktop PCs.
"p" to print any existing partition information.
"d" to delete any existing partitions.
"n" to create new partitions.
"t" to change the partition type to swap.
"a" to make the partition bootable.
"w" to write the partition table and exit.
The suggested steps are:
1. "p" print current partition information
2. "n" create new partitions to match the fdisk information
3. "t" change the appropriate partition type to swap
4. "a" make the appropriate partition bootable
5. "p" print new partition information and verify
6. "w" write the new partition information
5. Make file systems and label them using mkfs.ext3.
mkfs.ext3 -L /boot /dev/cciss/c0d0p1
mkfs.ext3 -L / /dev/cciss/c0d0p3
Check for other file systems.
Note: c0d0p2 is probably swap space and does not need a file system.
6. Format the swap space.
mkswap -c /dev/cciss/c0d0p2
7. Mount the file systems.
mkdir /mnt/slash
mount /dev/cciss/c0d0p3 /mnt/slash
mkdir /mnt/slash/boot
mount /dev/cciss/c0d0p1 /mnt/slash/boot
8. Restore directories.
cd /mnt/slash
ssh drbkup at saplog "cat sapprt2.0/drbkup_cpio_slash.gz" | gunzip -c |
cpio -idmV
cd /mnt/slash/boot
ssh drbkup at saplog "cat sapprt2.0/drbkup_cpio_boot.gz" | gunzip -c |
cpio -idmV
To restore a tar file (sapxip):
cd /mnt/slash/sapdb
ssh drbkup at saplog "cat sapxip/drbkup_tar_sapdb.tgz" | tar -xzv
9. Run grub.
/mnt/slash/sbin/grub
At the grub prompt (grub >)
grub > root (hd0,0) (disk 0, partition 0)
grub > setup (hd0)
grub > quit
10. Remove CD.
11. Reboot using "exit" command.
Dennis J Kaminski
-----Original Message-----
From: grlug-bounces at grlug.org [mailto:grlug-bounces at grlug.org] On Behalf
Of Chris Lamrock
Sent: Tuesday, September 12, 2006 8:59 AM
To: grlug at grlug.org
Subject: [GRLUG] Backing up Linux Servers
Hey guys,
I've got 2 linux servers running here - one is a Gentoo box and one runs
Red
Hat. I'd like to make images of the drives to an NFS share on a Windows
Server - for disaster recovery purposes. My 1st thought was dd... to
use
dd I'd need to boot a live cd on the linux server and set up the NFS
share -
then do the dd to it correct?
I also have Norton Ghost - I could use that I suppose...
Any thoughts? Ideas?
Thank you!
-Chris
_______________________________________________
grlug mailing list
grlug at grlug.org
http://shinobu.grlug.org/cgi-bin/mailman/listinfo/grlug
More information about the grlug
mailing list