rdiff-backup versions 0.2.x require Python version 2.1 or later, and versions 0.3.x and later require Python version 2.2 or later. If you don't know what version of python you are running, type in "python -V" from the shell. I'm sorry if this is inconvenient, but rdiff-backup uses generators, iterators, nested scoping, and static/class methods extensively, and these were only added in version 2.2.
If you have two versions of python installed, and running "python" defaults to an early version, you'll probably have to change the first line of the rdiff-backup script. For instance, you could set it to:
#!/usr/bin/env python2.2
There is no formal specification, but here is a rough description (settings are always cumulative, so 5 displays everything 4 does):
0 | No information given |
1 | Fatal Errors displayed |
2 | Warnings |
3 | Important messages, and maybe later some global statistics (default) |
4 | Some global settings, miscellaneous messages |
5 | Mentions which files were changed |
6 | More information on each file processed |
7 | More information on various things |
8 | All logging is dated |
9 | Details on which objects are moving across the connection |
Yes, apparently it is possible. First, follow Jason Piterak's instructions:
Subject: Cygwin rdiff-backup From: Jason Piterak <Jason_Piterak@c-i-s.com> Date: Mon, 4 Feb 2002 16:54:24 -0500 (13:54 PST) To: rdiff-backup@keywest.Stanford.EDU Hello all, On a lark, I thought I would attempt to get rdiff-backup to work under Windows98 under Cygwin. We have a number of NT/Win2K servers in the field that I'd love to be backing up via rdiff-backup, and this was the start of getting that working. SUMMARY: o You can get all the pieces for rdiff-backup working under Cygwin. o The backup process works up to the point of writing any files with timestamps. ... This is because the ':' character is reserved for Alternate Data Stream (ADS) file designations under NTFS. HOW TO GET IT WORKING (to a point, anyway): o Install Cygwin o Download the Python 2.2 update through the Cygwin installer and install. o Download the librsync libraries from the usual place, but before compiling... o Cygwin does not use/provide glibc. Because of this, you have to repoint some header files in the Makefile: -- Make sure that you have /usr/include/inttypes.h redirected to /usr/include/sys/types.h. Do this by: create a file /usr/include/inttypes.h with the contents: #include <sys/types.h> o Put rdiff-backup in your PATH, as you normally would.Then, whenever you use rdiff-backup (or at least if you are backing up to or restoring from a Windows system), use the --windows-time-format switch, which will tell rdiff-backup not to put a colon (":") in a filename (this option was added after Jason posted his message). Finally, as Michael Muegel points out, you have to exclude all files from the source directory which have colons in them, so add something like the --exclude ".*:.*" option. In the near future some quoting facility may be added to deal with these issues.
Let's take an example. Suppose you ran
The problem is that the default version of python for Redhat 7.x is
1.5.x, and rdiff-backup requires python >= 2.2. Redhat/rawhide
provides python 2.2 RPMs, but they are packaged under the "python2"
name.
So, if you are running Redhat 7.x:
You can also upgrade using a non-Redhat python 2.2 RPM and avoid
the above steps (this is what I did). Because of all the dependencies
it is usually easier to use source RPMs for this.
rdiff-backup /usr /backup
and now realize that you don't want /usr/local backed up on /backup.
Next time you back up, you run
rdiff-backup --exclude /usr/local /usr /backup
so that /usr/local is no longer copied to /backup/usr/local.
However, old information about /usr/local is still present in
/backup/rdiff-backup-data/increments/usr/local. You could wait for
this information to expire and then run rdiff-backup with the
--remove-older-than option, or you could remove the increments
manually by typing:
rm -rf /backup/rdiff-backup-data/increments/usr/local
rm /backup/rdiff-backup-data/increments/usr/local.*.dir
#!/usr/bin/env python2
so "python2" gets run instead of "python".