Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
RDUP-BACKUPS(7)			     rdup		       RDUP-BACKUPS(7)

NAME
       rdup-backups - introduction into	making backups with rdup

INTRODUCTION
       rdup  is	 a simple program that prints out a list of files and directo-
       ries that are changed changed on	a filesystem. It is more sophisticated
       than for	instance find, because rdup will find files that  are  removed
       or directories that are renamed.

       A  long	time  ago rdup included	a bunch	of shell and Perl scripts that
       implemented a backup policy. These could	be used	in a pipeline to  per-
       form a backup.

       Currently rdup consists out of three basic utilities:

       rdup   With  rdup  you  create the file list on which later programs in
	      the pipeline can work. The default output	format	also  includes
	      the  files'  content.  rdup  can be seen as a tar	replacement in
	      this respect, but	rdup also allows for all kinds of  transforma-
	      tions  of	 the  content (encryption, compression,	reversal), see
	      the -P switch in rdup(1) for more	information.

       rdup-tr
	      With rdup-tr you can transform the files rdup delivers  to  you.
	      You  can	create	tar,  cpio or pax files. You can encrypt path-
	      names. rdup-tr is	filter that  reads  from  standard  input  and
	      writes to	standard output.  See rdup-tr(1) for more information.
	      With  rdup and rdup-tr you can create an encrypted archive which
	      is put in	a directory structure that is also encrypted.

       rdup-up
	      With rdup-up you can update an existing directory	structure with
	      the updates as described by rdup.

	      rdup-up reads rdup input and will	 create	 the  files,  symbolic
	      links,  hard  links  and directories (and	sockets, pipes and de-
	      vices) in	the file system. See rdup-up(1)	for more information.

       So the general backup pipeline for rdup will look something like	this:

	   create filelist  |  transform |  update filesystem
	   ( rdup	    |  rdup-tr	 |  rdup-up )

       Note 1:
	      The same sequence	is used	for restoring. In both cases you  want
	      to  move files from location A to	B. The only difference is that
	      the transformation is reversed when you restore.

       Note 2:
	      The use of rdup-tr is optional.

BACKUPS	AND RESTORES
       For rdup	there is no difference between backups and  restores.  If  you
       think about this	for a minute you understand why.

       Making a	backup means copying a list of files somewhere else. Restoring
       files is	copying	a list of files	back to	the place they came from. Same
       difference. So rdup can be used for both, if you	did any	transformation
       with  rdup  during the backup you just need to reverse those operations
       during the restore.

BACKUPS
       It is always best to backup to another medium, be it a different	 local
       harddisk	 or  a	NFS/CIFS  mounted filesystem.  You can also use	ssh to
       store file on a remote server, ala rsync	(although not as network effi-
       cient).

       If you backup to	a local	disk you can just as well use rsync  or	 plain
       old  tar,  but if you store your	files at somebody else's disk you will
       need encryption.	This is	where you go beyond rsync and rdup  comes  in.
       Rsync  cannot  do per-file encryption, sure you can encrypt the network
       traffic with ssh, but at	the remote side	your files are kept  in	 plain
       view.	     If	you implement remote backups, the easy route is	to al-
       low root	access on the backup medium. If	the backup runs	 without  root
       access  the  created files will not have	their original ownership.  For
       NFS this	can be achieved	by using no_root_squash, for ssh you could en-
       able PermitRootLogin. Note that this may	be a security risk.

SNAPSHOT BACKUPS
       We need a little	help here in the form of the rdup-simple script.  Keep
       in mind that the	following scripts can also be run  remotely  with  the
       help of ssh.

       The following script implements the algorithm of	rdup-simple.

	      #!/bin/bash
	      #	some tmp files are saved in ~/.rdup. This directory must exist
	      DIR=/home	    # what to backup
	      BACKUP=/vol/backup
	      TODAY=$(date +%Y%m/%d)
	      LIST=~/.rdup/list-$HOSTNAME
	      STAMP=~/.rdup/timestamp-$HOSTNAME

	      #	for remote backup, this	has to run on the remote host!
	      BUGBUG
	      RET=$?

	      case $RET	in
		  2|*)
		   echo	Error >&2
		   exit	1
		   ;;
		  1)
		   # full dump,	remove file-list and time-stamp	file
		   rm $LIST $STAMP
		   ;;
		  0)
		   # inc dump
		   # do	nothing	here
		   ;;
	      esac
	      #	this is	the place where	you want to modify the command line
	      #	right now, nothing is translated we just use 'cat'
	      rdup -N $STAMP -Pcat $LIST $DIR |	rdup-up	$BACKUP/$HOSTNAME/$TODAY

	      #	or do a	remote backup
	      #rdup -N $STAMP -Pcat $LIST $DIR | ssh root@remotehost \
	      #	   rdup-up $BACKUP/$HOSTNAME/$TODAY

LOCAL BACKUPS
       With rdup-simple	you can	easily create backups.	Backing	up my home di-
       rectory to a backup directory:

	      rdup-simple ~ /vol/backup/$HOSTNAME

       This  will  create a backup in /vol/backup/$HOSTNAME/200705/15. So each
       day will	have its own directory.	Multiple sources are allowed, so:

	      rdup-simple ~ /etc/ /var/lib /vol/backup/$HOSTNAME

       Will backup your	home directory,	/etc and /var/lib to the backup	 loca-
       tion.  Also  if	you  need  to  compress	your backup, simple add	a '-z'
       switch:

	      rdup-simple -z ~ /etc/ /var/lib /vol/backup/$HOSTNAME

REMOTE BACKUPS
       For a remote backup to work, both the sending machine and the receiving
       machine must have rdup installed. The currently implemented protocol is
       ssh.

       Dumping my homedir to the remote	server:

	      rdup-simple ~ ssh://miekg@remote/vol/backup/$HOSTNAME

       The syntax is almost identical, only the	destination  starts  with  the
       magic  string  'ssh://'.	 Compression and encryption are	just as	easily
       enabled as with a local backup, just add	'-z' and/or a '-k keyfile' ar-
       gument:

	      rdup-simple    -z	   -k	 'secret-file'	  ~    ssh://miekg@re-
	      mote/vol/backup/$HOSTNAME

       Remember	 though, that because of these advanced	features (compression,
       encryption, etc,	...) the network transfer can never be as efficient as
       rsync.

ALSO SEE
       rdup(1),	rdup-tr(1), rdup-up(1) and http://www.miek.nl/projects/rdup/

1.1.x				  15 Dec 2008		       RDUP-BACKUPS(7)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=rdup-backups&sektion=7&manpath=FreeBSD+Ports+15.0>

home | help