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

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

[rdiff-backup-users] why does exclude move files to increments?


From: Brandon Saxe
Subject: [rdiff-backup-users] why does exclude move files to increments?
Date: Fri, 31 Aug 2007 07:30:31 -0700 (PDT)

I want to use rdiff-backup to do incrementals, but I
also only want to process files that have changed in
the last 24 hours. How come when I use exclude
directives that the directories excluded in subsequent
backups are moved to incrementals? This is causing
huge amounts of unnecessary I/O on my disk. I want to
create a baseline rdiff-backup and then only push
updates daily by using mtime. I have 300GB worth of
data and it takes an insane 16 hours to run. That's
fine for a baseline,but not an incremental. Does
rdiff-backup to a file compare on every single run? I
just want to compare files that changed in last day.
Here is an example of how just trying to process
changed files turns out:

I have a test directory tree:
/test
|-- dir1
|   |-- file1
|   |-- file2
|   `-- file3
|-- dir2
|   |-- file1
|   `-- file2
`-- file1

I create my baseline rdiff-backup with the following:
rdiff-backup --print-statistics
--exclude-other-filesystems --exclude-sockets
--exclude-device-files --exclude-fifos --include /test
--exclude '**' / /backup/testing

This results in the following tree:
/backup/testing/
|-- rdiff-backup-data
|   |-- backup.log
|   |-- chars_to_quote
|   |-- current_mirror.2007-08-31T10:25:11-04:00.data
|   |-- error_log.2007-08-31T10:25:11-04:00.data.gz
|   |--
extended_attributes.2007-08-31T10:25:11-04:00.snapshot.gz
|   |--
file_statistics.2007-08-31T10:25:11-04:00.data.gz
|   |-- increments
|   |--
mirror_metadata.2007-08-31T10:25:11-04:00.snapshot.gz
|   `--
session_statistics.2007-08-31T10:25:11-04:00.data
`-- test
    |-- dir1
    |   |-- file1
    |   |-- file2
    |   `-- file3
    |-- dir2
    |   |-- file1
    |   `-- file2
    `-- file1

Now when I run rdiff-backup on just those files that
have changed, it moves the non-changed files to
increments! Why? I am simulating the non-changed files
by excluding dir2 from my processing. I only want to
update the rdiff-backup tree for changed files based
on mtime to avoid the processing and I/O caused by
comparing all files' signatures. Here is my command
for only processing changed files:
find /test -mtime 0 | rdiff-backup --print-statistics
--exclude-other-filesystems --exclude-sockets
--exclude-device-files --exclude-fifos --exclude
/test/dir2 --include-filelist-stdin --exclude '**' /
/backup/testing

And here is the rdiff-backup resulting backup tree:
/backup/testing
|-- rdiff-backup-data
|   |-- backup.log
|   |-- chars_to_quote
|   |-- current_mirror.2007-08-31T10:28:04-04:00.data
|   |-- error_log.2007-08-31T10:25:11-04:00.data.gz
|   |-- error_log.2007-08-31T10:28:04-04:00.data.gz
|   |--
extended_attributes.2007-08-31T10:25:11-04:00.snapshot.gz
|   |--
extended_attributes.2007-08-31T10:28:04-04:00.snapshot.gz
|   |--
file_statistics.2007-08-31T10:25:11-04:00.data.gz
|   |--
file_statistics.2007-08-31T10:28:04-04:00.data.gz
|   |-- increments
|   |   |-- test
|   |   |   |-- dir2
|   |   |   |   |--
file1.2007-08-31T10:25:11-04:00.snapshot.gz
|   |   |   |   `--
file2.2007-08-31T10:25:11-04:00.snapshot.gz
|   |   |   `-- dir2.2007-08-31T10:25:11-04:00.dir
|   |   `-- test.2007-08-31T10:25:11-04:00.dir
|   |-- increments.2007-08-31T10:25:11-04:00.dir
|   |--
mirror_metadata.2007-08-31T10:25:11-04:00.snapshot.gz
|   |--
mirror_metadata.2007-08-31T10:28:04-04:00.snapshot.gz
|   |--
session_statistics.2007-08-31T10:25:11-04:00.data
|   `--
session_statistics.2007-08-31T10:28:04-04:00.data
`-- test
    |-- dir1
    |   |-- file1
    |   |-- file2
    |   `-- file3
    `-- file1

Why in the world did it do *anything* to the files I
excluded? Is there any way to do this without
operating on the entire backup set *every* time?

Thanks.
--Brandon




reply via email to

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