Unfortunately, a bump like this will persist until all the "pre-bump" backups are rotated out or until virtually all the files are replaced through regular changes. In a system with a lot of month-end backups, it could take many months.
As always, first thing to do is try to figure out why the backup failed.
Here's a visual version. Here's our current config:
In this case, 2022-08-04 failed, but there MIGHT be some good data, so we don't want to delete that yet. So, we want to "pull" the 2022-08-06, 2022-08-07, 2022-08-08, and the 2022-08-09 backups:2022-05-01-ME 2022-06-01-ME 2022-07-01-ME 2022-08-01-ME 2022-08-02 2022-08-03 2022-08-04 2022-08-05 2022-08-06 # FAILED BACKUP! 2022-08-07 # "bump" in storage 2022-08-08 2022-08-09
But...we just lost four backups in the rotation, so we need to create some placeholder directories:2022-05-01-ME 2022-06-01-ME 2022-07-01-ME 2022-08-01-ME 2022-08-02 2022-08-03 2022-08-04 2022-08-05 pull-2022-08-06 pull-2022-08-07 pull-2022-08-08 pull-2022-08-09 pull.NOTES
And we are back to eight daily backups in rotation, and four pulls. Now, when the "pull-" backups get older than the oldest of the daily backups, they can all be deleted:2000-00-00 2000-00-01 2000-00-02 2000-00-03 2022-05-01-ME 2022-06-01-ME 2022-07-01-ME 2022-08-01-ME 2022-08-02 2022-08-03 2022-08-04 2022-08-05 pull-2022-08-06 pull-2022-08-07 pull-2022-08-08 pull-2022-08-09 pull.NOTES
2022-05-01-ME 2022-06-01-ME 2022-07-01-ME 2022-08-01-ME 2022-08-03 2022-08-04 2022-08-05 2022-08-10 2022-08-11 2022-08-12 2022-08-13 2022-08-14 pull-2022-08-06 # Can be deleted pull-2022-08-07 # Can be deleted pull-2022-08-08 # Can be deleted pull-2022-08-09 # Can be deleted pull.NOTES
The downside to this process is your backups are a bit messy for historic research purposes, since some backups are on one volume, others on another.
The other way is to move one backup at a time from the old storage to the new storage, probably using rsync with the -H option to retain the symlinks. When a backup is moved over, change the symlink in the BUBASE directory. The problem with this process is it is very slow, it can take many days, so generally you want to move a few machines at a time from the old storage to the new storage. You don't want to have a backup run against an incomplete copy here, and you don't want to restart the rsync if you can help it.
One complication in moving to new hardware is shuffling the data appropriately. For example, at a company where we deployed this, we replaced a four volume system with a five volume system. In this case, worst-case would be simply copy 1->1, etc, then move individual backups over to the new volume. What we did was to just break up the entire list of servers into five groups, start 'em up, and look for space issues. The report function gives some idea of the individual backup sizes, but unfortunately it really gives only a hint at the size of the overall backup size.
Here, the * in the list of files to send "grep" to look through is "all backups within the myserver directory"# cd /bu/myserver # grep "^nick:" */etc/passwd 2022-03-01-ME/etc/passwd:nick:*:1000:1000:Nick Holland:/home/nick:/bin/ksh 2022-04-01-ME/etc/passwd:nick:*:1000:1000:Nick Holland:/home/nick:/bin/ksh 2022-05-01-ME/etc/passwd:nick:*:1000:1000:Nick Holland:/home/nick:/bin/ksh 2022-06-01-ME/etc/passwd:nick:*:1000:1000:Nick Holland:/home/nick:/bin/ksh 2022-07-01-ME/etc/passwd:nick:*:1000:1000:Nick Holland:/home/nick:/bin/ksh 2022-07-28/etc/passwd:nick:*:1000:1000:Nick Holland:/home/nick:/bin/ksh 2022-07-29/etc/passwd:nick:*:1000:1000:Nick Holland:/home/nick:/bin/ksh 2022-07-30/etc/passwd:nick:*:1000:1000:Nick Holland:/home/nick:/bin/ksh 2022-07-31/etc/passwd:nick:*:1000:1000:Nick Holland:/home/nick:/bin/ksh 2022-08-01-ME/etc/passwd:nick:*:1000:1000:Nick Holland:/home/nick:/bin/ksh 2022-08-02/etc/passwd:nick:*:1000:1000:Nick Holland:/home/nick:/bin/ksh 2022-08-03/etc/passwd:nick:*:1000:1000:Nick Holland:/home/nick:/bin/ksh 2022-08-04/etc/passwd:nick:*:1000:1000:Nick Holland:/home/nick:/bin/ksh
If we see our backups go back to 2022-12-01-ME, we know that user "nick" was created sometime in February, but we can't get more accurate than that because that's all we got to look at. However, if our backups only go back to 2022-03-01-ME, then we know user "nick" has been around a while.
In this case, the wildcard is looking at all backed up servers, but only looking at the /etc/passwd file in the 2022-08-04 backup.# cd /bu # grep "^nick:" */2022-08-04/etc/passwd dbu/2022-08-04/etc/passwd:nick:*:1000:1000:nick:/home/nick:/bin/ksh dbu1/2022-08-04/etc/passwd:nick:*:1000:1000:nick:/home/nick:/bin/ksh fluffy3/2022-08-04/etc/passwd:nick:*:1000:1000:Nick Holland:/home/nick:/bin/ksh g2.nickh.org/2022-08-04/etc/passwd:nick:*:1000:1000:Nick H.:/home/nick:/bin/ksh hc1/2022-08-04/etc/passwd:nick:*:1000:1000:nick:/home/nick:/bin/ksh monitor.nickh.org/2022-08-04/etc/passwd:nick:*:1000:1000:nick:/home/nick:/bin/ksh node1/2022-08-04/etc/passwd:nick:*:1000:1000:Nick Holland:/home/nick:/bin/ksh node2/2022-08-04/etc/passwd:nick:*:1000:1000:Nick Holland:/home/nick:/bin/ksh web.holland-consulting.net/2022-08-04/etc/passwd:nick:*:1000:1000:Nick Holland:/home/nick:/bin/ksh
For an example, at an employer, we had report generation code in typically a directory named something like /APP/INSTITUTION003/REPORTGEN. The problem was, the INSTITUTION number would vary from server to server, and in fact, each server might have several INSTITUTIONS in it -- a live one and a bunch of test systems. In this case, we probably want to find and fix not only the live institution but also the test system reports. But we really don't care about what was there two days ago or any month-end, just the most recent ones.
So ... we might try doing a search like this:
Note a lot of asterisks in that command line. The first one says "look in all servers". The second layer subdirectories is just the most recent backup date. Then /APP/INSTITUTION* to grab all the possible institutions that are on the backup server, and then the REPORTGEN directory, and all files within it. This might take a while -- and you might get an error message indicating your command line is too long. In that case, you may have to break it up into looking at individual servers or other sub-tasks, as appropriate.grep OLDMODULE.BIN /bu/*/2022-08-04/APP/INSTITUTION*/REPORTGEN/*
Holland Consulting home
Page
Contact Holland Consulting
since February 20, 2022
Page Copyright 2022, Nick Holland, Holland Consulting.