www.robotz.com - your personal web presence provider

Displaying conventional_backup.txt


[notes index] | [home]


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




Trans American Software
Robotz.com Developer's Project
developer@robotz.com