Best procedure for full backup of live system

Steve Bertrand steve at
Thu Oct 15 05:40:24 UTC 2009

Nerius Landys wrote:
> My server is increasingly having important work stored on it, and I
> need to start taking backups of a lot of directories, especially
> /home, /opt, /etc, /usr/local/etc, and maybe others.  The ideal backup
> (and what I've done in the past) is to take a full low-level dd image
> of the disk while the system is down (this is easy to do in a
> situation where you have dual boot).  Or, since the output of dd would
> take up tons of space and would only be usable on an identical hard
> drive, use "dump" to take the backup while the machine is turned off
> (again easy to do on a dual boot).  But now, I cannot bring down the
> machine.  My plan is to do a tar gzip of / on the fly, and pipe that
> to ssh (remote machine).  However, the system is live, and files will
> be in the progress of changing.
> My question is, what is the recommended procedure of taking a full
> backup on a live system?  Ideally, if my hard drive were to crash, I
> would like to have such a backup so as to make it possible to copy
> over the entire backup to a new identical harddrive without doing any
> reinstall or configuration.  Should I use tar/gzip?  dump?  What exact
> command should I use?  I guess I'll back up all of / including system
> files, because there is not too much data.  I will be piping the
> output to ssh.

Always consider, document and thoroughly test-utilize anything that
'Warren Block' has to say about backup and archiving ( search the
archives for his name ).

*always* remember that _archive_ is not a _backup_.

*always* remember that if you have neither an archive or a backup, you
are a complete failure as an 'admin' in general.

*never* be responsible for losing data...EVER.

I like to use space on remote servers ( or oftentimes local disks ) as
clone-able space. To manufacture a live clone, I love rsync(1).

Without getting into the nitty-gritty ( ( proper db mgmt pausing etc ),
Here is a q&d example to get the blood flowing.. comment the first etc ):

#	rsync -arcvv \ 		# be very verbose
	--exclude=/backup \	# ignore our backup location
	--exclude=/tmp	\	# ignore sessions, etc
	--delete-after	\	# delete changes since last rsync
	/		\	# sync this....
	/backup			# this...


More information about the freebsd-questions mailing list