> From: rdiff-backup-users-bounces+rdiff- > backup=nedharvey....@nongnu.org [mailto:rdiff-backup-users- > bounces+rdiff-backup=nedharvey....@nongnu.org] On Behalf Of Kosta > > I'm currently trying to move from a "incremental rdiff-backup on same > filesystem" to "modern filesystem with snapshots".
Out of curiosity, what are you moving to? > 1. Restore full backup of oldest existing version from $backup to $new > 2. Take a snapshot of $new > 2. For each increment: > 2.1. List all changed/added files using: There is probably a faster and less space way to do this, but I would do something like this: Because it's super easy and reliable. First get the list of all increments. rdiff-backup -l /rdiff-backup-dir | grep increments | sed 's/.*increments.//' | sed 's/.dir.*//' Also get the timestamp of the "current" one: ls /rdiff-backup-dir/rdiff-backup-data/current_* Stick all these into a variable to be iterated over. (Hopefully not TOO many, so you don't exceed maximum command length and stuff like that. Otherwise you'll have to use something like xargs, or multiple commands, to iterate differently, which could get a little more complicated.) export INCREMENTS="2013-05-06T13:55:24Z 2013-05-06T13:55:46Z 2013-05-06T14:01:32Z" Be sure to include the current, latest timestamp in that list, as the final argument. And be sure they're sorted chronologically. Now, before I continue, I'm assuming your destination is zfs or btrfs or something. So you DON'T want to overwrite files in the destination that haven't changed. Unfortunately, the behavior of rdiff-backup restoration is to overwrite the destination you're restoring to. So you'll have to restore to an intermediate directory instead, and then use something like rsync to stage the *actual* changes to the *actual* destination directory. Using rsync, it will choose based on timestamp and other file properties, not to overwrite files that appear to be the unchanged. Thus achieving the end result you desire, unless for some reason, timestamp and those other properties are inaccurate indicators of file changes in your environment. (For most environments, this is a safe assumption.) for INC in $INCREMENTS ; do echo $INC rdiff-backup --force -r $INC /rdiff-backup-dir/ /tmp/staging/ rsync -a /tmp/staging/ /destination rm -rf /tmp/staging # Optionally, "zfs snapshot" or "btrfs snapshot" /destination done _______________________________________________ rdiff-backup-users mailing list at rdiff-backup-users@nongnu.org https://lists.nongnu.org/mailman/listinfo/rdiff-backup-users Wiki URL: http://rdiff-backup.solutionsfirst.com.au/index.php/RdiffBackupWiki