rdiff-backup-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[rdiff-backup-users] More patches to get rdiff-backup working under cygw


From: Marc Dyksterhouse
Subject: [rdiff-backup-users] More patches to get rdiff-backup working under cygwin/windows
Date: Fri, 26 Jan 2007 15:59:37 -0500
User-agent: Thunderbird 1.5.0.9 (Windows/20061207)

Hi all,

I had some issues backing up a linux machine to a Windows box using rdiff-backup. I got passed all my (known) issues today so I wanted to submit the fixes so others could take advantage of them. I started with version 1.1.7.

Note that these fixes are only needed when backing up unix to windows. Windows to windows or windows to unix shouldn't need this. Well, actually, the Security.py patch is probably needed in all these cases.

My issues:

o The now famous fsync issue:
I just included the same patch here that is already being used.

o Files with asterisks (*) and other bad characters:

I had a file named "*.xxx" that was causing the backup to fail.

Turns out there's a pretty bad bug in the get_ctq_from_fsas logic where the regex used wants to quote all characters except a-z, underscore, space, period, and dash. But the faulty regex also includes all ASCII chars BETWEEN a space and a period. Bad regex: "^a-z0-9_ .-" Good regex: "^a-z0-9_ .-". Putting the dash at the end makes it not be a range special character. This appears twice in fs_abilities.py. The second one includes "A-Z" (uppercase chars) too.

o DOS device files ("aux", "prn", etc) caused backup to fail.

Any file on linux that was named aux or aux.XXX or prn[.XXX] or con[.XXX] or nul[.XXX] or com[0-9][.XXX] or lpt[12][.XXX] would cause the backup to fail.

I created a patch that tests the file system abilities and escapes these names if necessary by quoting the first character of the name. So, "aux" is converted to ";097ux".

This was the biggest change. I've only tested it when backing up unix on to windows. Restore works too.

o Security.py exception

FilenameMapping.set_init_quote_vals was missing from the list of methods that can be called remotely.


The four patches can be downloaded here:

  http://www.visiwave.com/download/rdiff_backup/rpath.py.patch
  http://www.visiwave.com/download/rdiff_backup/Security.py.patch
  http://www.visiwave.com/download/rdiff_backup/FilenameMapping.py.patch
  http://www.visiwave.com/download/rdiff_backup/fs_abilities.py.patch

Regards,
marc





reply via email to

[Prev in Thread] Current Thread [Next in Thread]