4

I run a nightly backup of all my files using rdiff-backup. Can I use rdiff-backup to tell me when changes occurred to a particular file or set of files throughout a certain timeframe?

For example, lets say I have file.txt and here is its recent history

March 4 - nochange
March 3 - changed
March 2 - changed
March 1 - nochange
Feb 28 - nochange
Feb 27 - nochange
Feb 26 - changed
Feb 25 - nochange

I'm trying to figure out if there is a command that would basically tell me:

file.txt changed on the following dates
March 3, March 2, Feb 26

I can use --list-changed-since to show if something has changed or not during that time range. Do I have to just use this --list-changed-since multiple time (one for each backup) to determine which days it changed? Or is there a feature of rdiff-backup that is builtin for what I'm looking for?

Jake Wilson
  • 8,494
  • 29
  • 94
  • 121

1 Answers1

2

To my knowledge there are no built-in feature in rdiff-backup providing the summary you are after.

An alternative to calling --list-changed-since multiple times is to simply parse the content of ./rdiff-backup-data/increments. In there you will find the reverse diffs matching every change, named filename.time.diff.gz. Just remember that if you have a reverse diff for TIME that means the actual change took place at TIME+1.

The easiest way to get a good list of all available backups times, to compare against, is probably to either use "rdiff-backup --parsable-output --list-increments" or to parse ./rdiff-backup-data/increments..dir in addition to ./rdiff-backup-data/current_mirror..data. Note that --parsable-output gives you epoch time, aka unix time, which then easily can be converted into desired format.

andol
  • 6,848
  • 28
  • 43