rdiff-backup-regress v1.0 [25 Aug 2016] by Dominic
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.
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.
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.
rdiff-backup-regress.sh [options] archive-path
./rdiff-backup-regress.sh -n 2 /home/fred/backup
-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
awk bash coreutils rdiff-backup sed
Copyright Â© 2016 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 http://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.
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
- TimeDicer - Onsite/offsite data backup for Windows (uses rdiff-backup)
- Finding a 4D Backup Solution
- Web Scraping How To - extracting data from web sites
Here is a selection of some (other) programs I have written, most of which run 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 for a conventional Linux server, they should run even on a Raspberry Pi, and many can run under Windows using Cygwin. Email me if you have problems or questions, or if you think I could help with a programming requirement.
- TimeDicer - Onsite/offsite data backup for Windows (uses rdiff-backup) [ GNU/Linux & MS Windows©: 2008-16 ]
- rdiffweb-install - GNU/Linux script to install rdiffWeb. [ GNU/Linux: 2011-16 ]
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. (Ubuntu Tweak can do the same but kernel-remove.sh is a command-line script so does not require GUI.) [ GNU/Linux-Debian/Ubuntu: 2010-15 ]
- kernel-update - GNU/Linux script to install/update Ubuntu kernel (also optionally btrfs-progs and duperemove) with latest version. [ GNU/Linux-Ubuntu: 2015-16 ]
- 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-Debian/Ubuntu: 2012-16 ]
- lvm-delete-snapshot - GNU/Linux script to remove LVM snapshot that has been left over by another process. [ GNU/Linux-Debian/Ubuntu: 2012-16 ]
Dellmont / Three / Giffgaff / Vodafone - VoIP and Mobile Phone Account Utilities
- dellmont-credit-checker - GNU/Linux script to check credit balance on many Dellmont / Finarea / Betamax portals such as voicetrading.com and voipdiscount.com. [ GNU/Linux: 2008-16 ]
- sms-sender - GNU/Linux script to send text messages using Dellmont’s voicetrading.com. [ GNU/Linux: 2012-16 ]
- get-vt-cdrs - GNU/Linux script to download CDRs (call detail records) from Dellmont’s voicetrading.com or voippro.com. [ GNU/Linux: 2010-16 ]
- saynoto0870 - For people in 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 ]
- three-credit-checker - GNU/Linux script which checks credit/calls/text/data remaining on a mobile phone account with three.co.uk. [ GNU/Linux: 2014-16 ]
- giffgaff-credit-checker - GNU/Linux script which checks credit/calls/text/data remaining on a mobile phone account with giffgaff.com. [ GNU/Linux: 2014-16 ]
- vodafone-compile-bills - GNU/Linux script which reprocesses downloaded call record 'csv' files from vodafone.co.uk so that they can be easily analysed via spreadsheet - including analysis of bundled minutes which even Vodafone do not seem able to perform! [ GNU/Linux: 2012-16 ]
- 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-14]
- nano-update - GNU/Linux program to check/configure/make/install editor nano to the latest stable version found at http://www.nano-editor.org. [ GNU/Linux: 2015-16 ]
- 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-16 ]
- form-extractor - GNU/Linux program to extract form tags from a web page or downloaded file. [ GNU/Linux: 2012-16 ]
- 123-dns-manager - GNU/Linux program for automated 123-Reg.co.uk Advanced DNS management. [ GNU/Linux: 2016-16 ]
- 123-dns-sync - GNU/Linux program to update DNS record at 123-Reg.co.uk to match external ip. [ GNU/Linux: 2016-17 ]
- recover-space - GNU/Linux program to enable a virtual disk volume to be compacted. [ GNU/Linux: 2014-15 ]
- 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-16 ]
- dutree - GNU/Linux program to show a tree-style list of files and directories at the specified location and greater than the specified size (default 1GB). [ GNU/Linux: 2012-15 ]
- disk-wiper - GNU/Linux script to wipe a disk drive comprehensively and also check it for bad blocks. For use on a surplus drive (not SSD, not GPT) before passing to a third party. [ GNU/Linux: 2011-16 ]
- myip-upload - GNU/Linux and Windows (Cygwin) script to obtain external ip and upload it to remote site/file by ftp. [ GNU/Linux & MS Windows©: 2014-16 ]
- man2text - GNU/Linux one-liner program to convert man page output to straightforward text. [ GNU/Linux: 2012-12 ]
- Accounts - Multi-business multi-currency accounting software, uses Access [MS Windows©: 1996-2016]
- Rents Program - Residential lettings/landlord front office program, with many special features for UK market [MS Windows©: 1991-2016]
TimeDicer failed with error 30 - error performing rdiff-backup relating to dataset[s]
below is my configurations:
SET options=--no-acls -v5