From 3d99a2ee601b0623bab33a08b23658b6697dd805 Mon Sep 17 00:00:00 2001
From: bescoto Backing up
@@ -17,35 +18,34 @@
directory bar
. bar
will end up a copy of
foo
, except it will contain the directory
foo/rdiff-backup-data, which will allow rdiff-backup to restore
-previous states.
rdiff-backup foo bar
-
+rdiff-backup foo bar
Simple remote case---backup directory /some/local-dir
to the directory /whatever/remote-dir
on the machine
hostname.net. It uses ssh to open the necessary pipe to the remote
copy of rdiff-backup. Just like the above except one directory is on
-a remove computer.
rdiff-backup /some/local-dir hostname.net::/whatever/remote-dir
-rdiff-backup /some/local-dir hostname.net::/whatever/remote-dir
This time the source directory is remote and the destination is local. Also, we have specified the username on the remote host (by default ssh will attempt to log you in with the same username you have -on the local host).
+on the local host). -rdiff-backup user@hostname.net::/remote-dir local-dir
-rdiff-backup user@hostname.net::/remote-dir local-dir
It is even possible for both the source and destination
directories to be on other machines. Below we have also added the
--v5
switch for greater verbosity (verbosity settings go from
-0 to 9, with 3 as the default).
rdiff-backup -v5 user1@host1::/source-dir user2@host2::/dest-dir
-v5
switch for greater verbosity (verbosity settings go
+from 0 to 9, with 3 as the default), and the
+--print-statistics
switch so some statistics will be
+displayed at the end (even without this switch, the statistics will
+still be saved in the rdiff-backup-data
directory).
+rdiff-backup -v5 --print-statistics user1@host1::/source-dir user2@host2::/dest-dir
@@ -71,12 +71,15 @@ and the backup directory local.
In this case we can't use cp
to copying
host.net::remote-dir/file
to local-dir/file
because they are on different machines. We can get rdiff-backup to
-restore the current version of that file like this:
+restore the current version of that file using either of these::
-
rdiff-backup -r now host.net::/remote-dir/file local-dir/file
+rdiff-backup --restore-as-of now
+host.net::/remote-dir/file local-dir/file
rdiff-backup -r now
+host.net::/remote-dir/file local-dir/file
-The -r
switch tells rdiff-backup to restore instead of
-back up, and the now
option indicates the current time.
+The --restore-as-of
(or -r
for short) switch
+tells rdiff-backup to restore instead of back up, and the
+now
option indicates the current time.
But the main advantage of rdiff-backup is that it keeps version @@ -96,72 +99,188 @@ increment file. Increment files are stored in hold the previous versions of changed files. If you specify one directly: -
+rdiff-backup
+host.net::/remote-dir/rdiff-backup-data/increments/file.2003-03-05T12:21:41-07:00.diff.gz local-dir/file
+
+rdiff-backup will tell from the filename that it is an rdiff-backup
+increment file and thus enter restore mode. Above the restored version is written to local-dir/file
.
Although rdiff-backup tries to save space by only storing file
+differences, eventually space may run out in the destination
+directory. rdiff-backup's --remove-older-than
mode can
+be used to delete older increments.
This section assumes that rdiff-backup has been used in the past to
+back up to host.net::/remote-dir
, but all commands would
+work locally too, if the hostname were ommitted.
This commands deletes all information concerning file +versions which have not been current for 2 weeks: + +
rdiff-backup --remove-older-than 2W host.net::/remote-dir
+
+Note that an existing file which hasn't changed for a year will still
+be preserved. But a file which was deleted 15 days ago cannot be
+restored after this command is run. As when restoring, there are a variety of ways to specify the
+time. The 20B
below tells rdiff-backup to only preserve
+information from the last 20 rdiff-backup sessions. (nnB
+syntax is only available in versions after 0.13.1.)
+
+
rdiff-backup --remove-older-than 20B host.net::/remote-dir
Sometimes you don't want to back up all files. The various
+--include
and --exclude
options can be used
+to select exactly which files to back up. See the man page for a list
+of all the options and their definitions.
In this example we exclude /mnt/backup
to
+avoid an infinite loop.
-, rdiff-backup will tell from the filename that it is an
-rdiff-backup file and not
+
rdiff-backup --exclude /mnt/backup /
+/mnt/backup
-Foo/proc
as well.
+This example is more realistic. We have excluded
+/proc
, /tmp
, and /mnt
.
+/proc
in particular should never be backed up. Also, the
+source directory happens to be remote.
+
+
rdiff-backup --exclude /tmp --exclude /mnt
+--exclude /proc user@host.net::/ /backup/host.net
Multiple include and exclude options take precedence in the
+order they are given. The following command would back up
+/usr/local/bin
but not /usr/bin
.
+
+
rdiff-backup --include /usr/local --exclude /usr / host.net::/backup
rdiff-backup uses rsync-like wildcards, where **
+matches any path and *
matches any path without a
+/
in it. Thus this command:
+
+
rdiff-backup --include /usr/local --include /var --exclude '**' / /backup
+
+backs up only the /usr/local
and /var
+directories. The single quotes ''
are not part of
+rdiff-backup and are only used because many shells will expand
+**
.Here is a more complicated example: + +
rdiff-backup --include '**txt' --exclude /usr/local/games --include /usr/local --exclude /usr --exclude /backup --exclude /proc / /backup
+
+The above command will back up any file ending in txt
,
+even /usr/local/games/pong/scores.txt
because that
+include has highest precedence. The contents of the directory
+/usr/local/bin
will get backed up, but not
+/usr/share
or /usr/local/games/pong
.include-list
contains these two lines:
+
++ +Then this command: + ++/var +/usr/bin/gzip +
rdiff-backup --include-filelist include-list --exclude '**' / /backup
+
+would only back up the files /var
, /usr
,
+/usr/bin
, and /usr/bin/gzip
, but not
+/var/log
or /usr/bin/gunzip
. Note that this
+differs from the --include
option, since --include
+/var
would also match /var/log
.The same file list can both include and exclude files. If we
+create a file called include-list
that contains these
+lines:
+
+
+ +Then the following command will do exactly the same thing as the +complicated example two above. + +**txt +- /usr/local/games +/usr/local +- /usr +- /backup +- /proc
+ +Above we have usedrdiff-backup --include-globbing-filelist include-list / /backup
--include-globbing-filelist
instead of
+--include-filelist
so that the lines would be interpreted
+as if they were specified on the command line. Otherwise, for
+instance, **txt
would be considered the name of a file,
+not a globbing string.+The following examples assume that you have run
rdiff-backup
+in-dir out-dir
in the past.
-Back files up from /home/bob to /mnt/backup, leaving increments in -/mnt/backup/rdiff-backup-data. Do not back up directory /home/bob/tmp or -any files in it.
+This command finds all new or old files which contain the
+string frobniz
.
-
rdiff-backup --exclude /home/bob/tmp /home/bob /mnt/backup
find out-dir -name '*frobniz*'
-The file selection options can be combined in various ways. The following -command backs up the whole file system to /usr/local/backup. However, the -entire /usr directory is skipped, with the exception of /usr/local, which -is included, except for /usr/local/backup, which is excluded to prevent -a circularity:
+rdiff-backup doesn't obscure the names of files at all, so often using +traditional tools work well.rdiff-backup --exclude /usr/local/backup --include /usr/local ---exclude /usr / /usr/local/backup
Either of these equivalent commands lists the times of the
+available versions of the file out-dir/file
. It may be
+useful if you need to restore an older version of
+in-dir/file
but aren't sure which one.
-
Suppose /mnt/backup is an rdiff-backup destination directory, and -space is running out there. The following command erases backup -information older than a week:
+
rdiff-backup --list-increments
+out-dir/file
rdiff-backup -l
+out-dir/file
rdiff-backup --remove-older-than 7D /mnt/backup
+The following command lists all the files under
+out-dir/subdir
which has changed in the last 5 days.
-
-The following reads the file important-data.2001-07-15T04:09:38-07:00.dir and -restores the resulting directory important-data as it was on Februrary 14, -2001, calling the new directory "temp". Note that rdiff-backup goes into -restore mode because it recognizes the suffix of the file. The -v9 means -keep lots of logging information.
+
rdiff-backup --list-changed-since 5D out-dir/subdir
rdiff-backup -v9 important-data.2001-07-15T04:09:38-07:00.dir -temp
+This command lists all the files that were present in
+out-dir/subdir
5 days ago. This includes files that have
+not changed recently as well as those that have been deleted in the
+last 5 days.
-
Suppose you backed up to the directory /backup on the host -remote.host.net, where your username is user. The following command -restores all of that data as it was 3 days ago to the directory -output.
+rdiff-backup --list-at-time 5D
+out-dir/subdir
rdiff-backup -r 3D user@remote.host.net::/backup output
+out-dir/rdiff-backup-data
directory. An average of the
+files can be displayed using the --calculate-average
+option and specifying the statistics files to use.
+
+rdiff-backup --calculate-average out-dir/rdiff-backup-data/session_statistics*
Backup foo on one remote machine to bar on another. This will -probably be slower than running rdiff-backup from either machine.
-
rdiff-backup smith@host1::foo jones@host2::bar
+Test to see if the specified ssh command really opens up a working -rdiff-backup server on the remote side.
+ If you are having problems connecting to a remote host, the
+--test-server
command may be useful. This command simply
+verifies that there is a working rdiff-backup server on the remote
+side.
+
rdiff-backup --test-server hostname.net::/ignored
rdiff-backup --test-server hostname.net::/ignored