I've recently had a nasty fright when NTBackup refused to read its own bkf files and at the same time I discovered that one of my clients needs the ability to restore files created on a particular day. We were able to get into the bkf files using a third party bkf recovery product, but the backup rotation was too coarse to allow a particular folder to be restored to the condition it was in one day in the middle of the previous week.
To resolve this problem I have moved over to using Disk Snapshot as the backup program; beginning by writing a full system backup to all 3 of the USB drives in the backup set and then automating the writing of a differential backup each night with the date of the write in the name of the file - eg C-20100407.sna. The capacity of the USB drives is such that I will be able to write upwards of twenty differentials on each of the 3 drives which theoretically allows me to store the system state for about the last 60 working days.
Recovering files from a given day in the past will be trivially straightforward - doubleclicking the correct differential file will open the Disk Snapshot program, combine the differential with the original full backup, and then map the resulting image as a virtual drive identical to the disk in question as it stood at the time the differential file was written - Disk Snapshot is a VSS aware program so the state of exchange files and SQL databases is also exactly replicated.
Now for the bit that has me foxed: I'd like to be able to test the free space on the USB drive before the backup procedure starts and, if necessary, delete the earliest differential backups to make room for the backup about to be written. Choosing which files to delete is complicated by the fact that each backup set may contain a dozen or more files - a typical differential fileset would start with c-20100407.sna and contain one or more other files with names in the form c-20100407.sn1, c-20100407.sn2 etc. The attached image file shows a directory containing a full backup of a C-drive and a single differential backup with a dated filename. After 20 or 30 iterations there will be hundreds of files in the backup directory, from which a choice will need to be made to delete everything older than files with names containing YYYYMMDD.
To complicate the matter, the approach can't really use a BAT/CMD file because they do not run with the machine logged off, but I've seen utilitites to turn bat/cmd files into exe files, so that approach might work.
Has anyone got any advice or pointers for how this can be done?