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?


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.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.