rdiff-backup-regress v1.1 [05 Jul 2024] by Dominic
Description
DEPRECATED - this utility is no longer required for rdiff-backup version 2.2.0 (December 2022) and later - for these, we recommend instead that you use the built-in regress option with --force.
This utility regresses an rdiff-backup archive by one or more backup sessions i.e. to the state it was in before the last n backup sessions.
rdiff-backup-regress.sh can be used to remove an unwanted recent backup run - for instance one that excludes a lot of the usual data or includes a lot of extraneous data. Because rdiff-backup saves a full history of data via incremental diff (delta) files, excluding or including a lot of data on one occasion and then correcting it the next time will bloat your repository/archive substantially (by twice the compressed size of the relevant data). By using rdiff-backup-regress.sh to regress the archive back to the point before the incorrect backup, you can undo this and recover the lost space. You can consider it a workaround for a missing --regress option in rdiff-backup (fixed in version 2.2.0).
If the session (aka run or increment) you want to remove is not the most recent then you can use the -n option to remove the requisite number of sessions from the most recent up to the one you want to remove - it is not possible to remove just one session from the middle of an archive. If you want to remove some of the earliest, rather than the most recent, sessions you should instead use rdiff-backup with --remove-older-than option.
rdiff-backup-regress.sh can also be used with a corrupted archive if regression does not happen automatically and cannot be initiated with --check-destination-dir; however this may not be successful, and could make things worse, so you are advised to take a backup of the entire repository first.
rdiff-backup-regress.sh works by 'tricking' rdiff-backup into thinking that the last backup is faulty (by creating a second current_mirror file), and then runs rdiff-backup --check-destination-dir to perform the regression. With -n option it just repeats this operation a number of times. The methodology was originally suggested by Janne Peltonen - kudos.
Note that regressions can take a long time; don't take any other actions on the archive until rdiff-backup-regress.sh has completed.
Health Warnings
rdiff-backup-regress.sh removes one or more recent backups sessions from your rdiff-backup archive. Once removed, a backup session is irrecoverable. Earlier sessions in the same archive should still be recoverable.
If rdiff-backup-regress.sh is run with superuser permissions (e.g. sudo), and the original archives were created by a different user then after recovery some file ownerships may have changed. You are advised if possible to run rdiff-backup-regress.sh as the same user who originally created and updated the rdiff-backup archive that is being regressed.
Usage
rdiff-backup-regress.sh [options] archive-path
Note that, unlike rdiff-backup, rdiff-backup-regress.sh must be run on the machine hosting the repository, or (untested) via NFS mount.
Example
Options
-f - Force, proceed with no prompt
-h - Show this help text and then quit
-l - Show changelog and then quit
-n num - Regress the backup recursively num times (where num is an integer) - default 1
-q - Quiet, no output unless an error occurs
Dependencies
awk bash coreutils rdiff-backup sed
License
Copyright © 2024 Dominic Raferd. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at https://www.apache.org/licenses/LICENSE-2.0. Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Changelog
1.1 [05 Jul 2024] - updated help info
1.0 [25 Aug 2016] - updated help info
0.9 [12 Aug 2016] - improved user comparison
0.8 [23 Sep 2015] - don't descend directories searching for current_mirror(s)
0.7 [09 Dec 2014] - update help and warn if running as superuser
0.6 [22 Jan 2014] - minor text output fixes
0.5 [16 Dec 2013] - help text updated
0.4 [29 Jul 2013] - help text updated, added changelog
Download rdiff-backup-regress.sh
Donation
I have provided this software free gratis and for nothing. If you would like to thank me with a contribution, please let me know and I will send you a link. Thank you!
My Other Sites
- TimeDicer - Onsite/offsite data backup for Windows (uses rdiff-backup)
- Finding a 4D Backup Solution
- Web Scraping How To - extracting data from web sites
My Programs
Here is a selection of some (other) programs I have written, most of which run under GNU/Linux from the command line (CLI), are freely available and can be obtained by clicking on the links. Dependencies are shown and while in most cases written and tested on an x86-based Linux server, they should run on a Raspberry Pi, and many can run under Windows using Windows Subsystem for Linux (WSL) or Cygwin. Email me if you have problems or questions, or if you think I could help with a programming requirement.
Backup Utilities
- TimeDicer - Onsite/offsite data backup for Windows (uses rdiff-backup) [ GNU/Linux & MS Windows©: 2008-20 ]
Debian/Ubuntu kernel and LVM Utilities
- kernel-remove - GNU/Linux script to list the installed GNU/Linux kernels in a Debian-based distro (e.g. Ubuntu), and can be used to remove an unwanted kernel and related packages, updating grub appropriately. [ GNU/Linux-Debian/Ubuntu: 2010-24 ]
- lvm-usage - GNU/Linux script to show available disk space and how it is used; run as cron job to warn if usage is above a set percentage. Provides additional information if LVM is in use. [ GNU/Linux: 2012-24 ]
- lvm-delete-snapshot - GNU/Linux script to remove LVM snapshot that has been left over by another process. [ GNU/Linux: 2012-21 ]
- netnames - GNU/Linux script shows current name, biosdevname and 'predictable name' of network device - helps with network device name scheme migration. [ GNU/Linux-Debian/Ubuntu: 2020-20 ]
- lv-convert2cache - GNU/Linux script to convert an existing LV into a cache LV using a smaller faster device as a cache. [ GNU/Linux: 2022-24 ]
Miscellaneous Programs
- sleepwalker - Windows© program which can be run from a remote machine to 'wake up' a Windows© machine behind a router, wait for it to start and then initiate Remote Desktop session. [MS Windows©: 2008-22]
- numliststat - GNU/Linux program giving statistical value(s) for a piped-in list of numbers. [ GNU/Linux: 2022-24 ]
- relay-enforcer - GNU/Linux program enabling a postfix-based mail server relaying to Gmail to act on reports from Gmail about blocked emails. [ GNU/Linux: 2016-24 ]
- pdf-compress - GNU/Linux program to create smaller b/w pdf file from an original large pdf file, especially when original resulted from scanning. [ GNU/Linux: 2016-23 ]
- tiny-device-monitor - GNU/Linux program to test webpages (including password-protected) or machines to check they are live; use as a cron job for your own websites, for hardware presenting a webpage, or for any machines with a presence on your local LAN or on the internet. [ GNU/Linux: 2009-24 ]
- form-extractor - GNU/Linux program to extract form tags from a web page or downloaded file. [ GNU/Linux: 2012-24 ]
- mythic-dns-sync - GNU/Linux program to update DNS record at mythic-beasts.com to match local external ip. [ GNU/Linux: 2016-23 ]
- saynoto0870 - For UK, a GNU/Linux script which performs automated lookup of the www.saynoto0870.com database, finding cheap or free geographic number replacements for expensive non-geographic (087* or 084*) numbers. [ GNU/Linux: 2012-12 ]
- bind9-resolved-switch - GNU/Linux program for switching permanently between using bind9 or systemd-resolved as the system DNS resolver. [ GNU/Linux: 2016-24 ]
- unlock - GNU/Linux remote program for easy entering of decrypt passphrase on a remote machine which has root dm-crypt+LUKS. [ GNU/Linux: 2017-18 ]
- wifi-updown - GNU/Linux program to take down wifi interface if there is a working wired interface (or restore wifi if not). [ GNU/Linux: 2018-23 ]
- routefix - GNU/Linux program to restore a default ip traffic route if there is none such (e.g. after running wifi-updown). [ GNU/Linux: 2018-23 ]
- dutree - GNU/Linux program to show a tree-style list of files and directories at the specified location which are greater than the specified size (default 1GB). [ GNU/Linux: 2012-24 ]
- Accounts - Multi-business multi-currency accounting software, uses Access [MS Windows©: 1996-2024]
- Rents Program - Residential lettings/landlord front office program, with many special features for UK market [MS Windows©: 1991-2024]
This section is closed. If you have a question, please submit it by email, thank you.
M.
TimeDicer failed with error 30 - error performing rdiff-backup relating to dataset[s]
below is my configurations:
SET server=192.168.x.x
SET excludelist=C:\Users\admin\AppData\Roaming\TimeDicer\exclude-filelist.txt
SET options=--no-acls -v5
C:\bk