|
conventional backup - a discussion with examples of various means to create
backup archives of your linux system. archive files, folders, partitions, and
your entire system with conventional linux programs. December 11, 2004
/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/
Creating a backup of your Linux system without using commercial software or
special backup utilities may be accomplished successfully with minimal
technical complexity. Some of the programs used for creating backup archives
discussed here include dd, dump, cpio, afio, tar and now pax.
"Backup plans need to be simple to implement or they will not get done -
especially at home." -JC Pollman and Bill Mote
Back up your Master Boot Record
---------------------------------------
Backing up your MBR is highly recommended. Use a rescue disk to boot and with
a blank floppy disk in drive issue the command:
dd if=/dev/hda of=MBR bs=512 count=1
Later on you may restore your MBR if it gets corrupted by issue of:
dd if=/mnt/MBR of=/dev/hda bs=446 count=1
Manual backup by copying to a backup drive
---------------------------------------
Harddrives are inexpensive. "tape drives are usually too expensive for the
home network, and floppies are impractical. [...] the best compromise is using a
spare hard drive." -JC Pollman and Bill Mote
The following examples copy directories and files.
a) use dd to copy / on /dev/hda1 to a /dev/hdb1 ( backup disk )
dd if=/dev/hda1 of=/dev/hdb1 bs=1024k
b) use tar to copy /home on /hda/dev5 to /dev/hdb5 ( backup disk )
mount /dev/hdb5 /mnt/backup
( tar cf - /home ) | ( cd /mnt/backup ; tar xvfp - )
umount /mnt/backup
c) use tar to backup /home to (backup disk)
mount /dev/hdb5 /mnt/backup
tar zcvf /mnt/backup/home.Date.tgz /home > /mnt/backup/home.Date.log
umount /mnt/backup
d) copy /home on /dev/hda5 to a /dev/hdb5 ( backup disk ) with scp
mount /dev/hdb5 /mnt/backup
scp -par /home /mnt/backup
umount /mnt/backup
scp -pr user1@host:/Source_to_Backup user2@BackupServer:/Backup_Dir
e) using cpio to copy /home on /dev/hda5 to a /dev/hdb5 ( backup disk )
mount /dev/hdb5 /mnt/backup
find /home -print | cpio -pm /mnt/backup
umount /mnt/backup
f) using cpio to view the contents of the backup archive
cpio -it < file.cpio
g) using cpio to extract a file from the archive
cpio -id "usr/share/file/doc/*" < file.cpio
h) incremental backup example using tar
LastBackupTime = `cat /Backup_Dir/Last.txt`
tar zcvf --newer $LastBackupTime /Backup_Dir/Date.x.tgz $DIRS
echo "Date" > /Backup_Dir/Last.txt
i) incremental backup example using find with tar
Cnt = `cat /Backup_Dir/Last.txt`
find $DIRS -mtime -$Cnt -print | tar zcvf /Backup_Dir/Date.$Cnt.tgz -T -
echo "$Cnt +1" > /Backup_Dir/Last.txt
j) using find with cpio
find /home -xdev | cpio -pm /mnt/backup
Manual backup by copying to a backup drive
---------------------------------------
Rsync is a well known command line utility used in synchronizing files between
two computers, but rsync can also be used as an effective backup tool.
a) Using rsync to back up the system to a remote system
rsync -e ssh -av raffi@BackupServer.your_domain.com::/home/Backup/xfer/*
/destination/xfer
rsync -avz --delete HomeServer::/home/* /Backup/destination
Debian / Knoppix system config + OS backup
---------------------------------------
This is not a system for backing up your user data. This is more specifically
a way to restore your debian linux operating system to the same configuration
with the same packages, software, and utilities install as before the system
crashed. However, only software installed as debian packages are restored.
What you downloaded in source, compiled yourself, and installed might just as
well be considered user data for this example.
a) backup a complete package configuration to the floppy
mount /dev/fd0
dpkg --get-selections * > /mnt/floppy/pkg.lst
b) include your etc contained system configuration files
tar zcvf /mnt/floppy/etc.tgz /etc
umount /dev/fd0
This floppy disk contains a complete list of .deb packages that make up your
system as well as the configuration files and scripts from /etc. Now you wish
to restore this to the system.
a) do a bare minimum install of debain from the cdrom or whatever source
b) package manager for Debian to install
dpkg --set-selections < /mnt/floppy/pkg.lst
c) now your important configuration files
cd / ; tar zdvf /mnt/floppy/etc.tgz
d) bring packages up to date installed
apt-get update
apt-get dist-upgrade
( or apt-get dselect-upgrade ) ( or aptitude install )
Backup Script by Daniel O'Callaghan, modified by JC Pollman and Bill Mote
---------------------------------------
#!/bin/sh
# full and incr backup script
# created 27 Sep 99
# Based on a script by Daniel O'Callaghan
#Change the 5 variables below to fit your computer/backup
COMPUTER=myserver # name of this computer
DIRECTORIES="/etc /home" # directoris to backup
BACKUPDIR=/backup/backups # where to store the backups
TIMEDIR=/backup/backups/last-full # where to store time of full backup
TAR=/bin/tar # name and locaction of tar
#You should not have to change anything below here
PATH=/usr/local/bin:/usr/bin:/bin
DOW=`date +%a` # Day of the week e.g. Mon
DOM=`date +%d` # Date of the Month e.g. 27
DM=`date +%d%b` # Date and Month e.g. 27Sep
# On the 1st of the month a permanet full backup is made
# Every Sunday a full backup is made - overwriting last Sundays backup
# The rest of the time an incremental backup is made. Each incremental
# backup overwrites last weeks incremental backup of the same name.
#
# if NEWER = "", then tar backs up all files in the directories
# otherwise it backs up files newer than the NEWER date. NEWER
# gets it date from the file written every Sunday.
if [ $DOM = "01" ]; then # monthly full backup
NEWER=""
$TAR $NEWER -z -c -f $BACKUPDIR/$COMPUTER-$DM.tgz $DIRECTORIES
fi
if [ $DOW = "Sun" ]; then # weekly full backup
NEWER=""
NOW=`date +%d-%b`
echo $NOW > $TIMEDIR/$COMPUTER-full-date #update full backup date
$TAR $NEWER -z -c -f $BACKUPDIR/$COMPUTER-$DOW.tgz $DIRECTORIES
else #make incremental backup - overwrite last weeks
NEWER="--newer `cat $TIMEDIR/$COMPUTER-full-date`" #get date of last
full backup
$TAR $NEWER -z -c -f $BACKUPDIR/$COMPUTER-$DOW.tgz $DIRECTORIES
fi
Using pax for multi-volume archives
---------------------------------------
PAX (Portable Archive Interchange) is a multipurpose archiving utility
and directory copying tool not available by default with some Linux
distributions.
To back up a directory called 'images' type:
pax -wvzf images.pax images/
switches used:
-w to write
-f name of pax archive
-v verbose output
-z compress
view the contexts without extraction
pax -zf images.pax
Compression is optional. Unfortunately, pax prompts for interactive
filenaming when the next volume is ready.
pax -wvz -f archive.pax -B 1048576 pictures/
The first volume, archive.pax, is created and then the user is prompted for
a name to assign the next volume, again and again until done.
Using star for multi-volume archives
---------------------------------------
star is an improved tar archiver with true incremental dump and restore
features.
star -c
star -c -f qwe tsize=1500k
References for this document:
---------------------------------------
Backup for the Home Network
http://www.linuxgazette.com/issue47/pollman.html
Backing up your Linux desktop with rsync
http://applications.linux.com/applications/04/09/15/1931240.shtml?tid=13
Using pax FreeBSD
http://www.onlamp.com/pub/a/bsd/2002/08/22/FreeBSD_Basics.html
Star
http://cdrecord.berlios.de/old/private/star.html
Backup Utilities to Investigate:
---------------------------------------
Backup Utility
http://backuper.infrax.si/
back2cd
http://www.samag.com/documents/s=7033/sam0204c/sam0204c.htm
Mondo Rescue
|