Hi.

I've been away from this forum (time's a killer!) but I decided to come back
with a challenge for everyone that wants to enter. I have an idea that I
want to expand and improve with your help... I'm the only programmer in my
company's limited IT staff, so I have no one else to talk this one with...

Purpose:
Creating an "intelligent" backup program that would allow users to backup their
data in a compressed, easily retrievable, central location. It would
*not* create duplicate backup files for the same data, even among
users. Ideally it should run at logoff, but can run instead in the logon script.

How:
Something along these lines:
  • Using the Win*Notify calls to detect modified files in a given sub-folder(s) (My Documents, Favorites, Desktop, Outlook personal folders and settings, Office Settings / templates, etc...)
  • "Brand" user's files and folders with a "unique" ID using an MD5 checksum, to compensate for file renaming/moving
  • Could use NTFS streams for that (store one in "My Documents" with a list of files/folders/IDs/CRCs)
  • Provide graphical feedback on the whole copy process and estimated time for completion
  • Allow for system and user specified exclusions (folders NOT to be copied over to the server)
  • Allow for system and user specified INCLUSIONS (folders to be copied over to the server)
  • Use "logged in user" to do the backup
  • Advise AGAINST doing a backup when home server is on a different subnet (for laptop users)
  • Compress files individually (.gz ?)
  • Keep updated CRC file list in the server's backup and use that one if user deletes hidden backup config
  • Allow for "Complete Restore" to compensate for user moving to a different machine and/or having it's PC's HD reformatted
  • Only do one of the following if user's PC is on the same subnet as user's backup server:
  • Create a FULL initial backup, generating CRCs and creating configuration files if no backup present on server
  • Do a FULL restore if backup present and no files present after asking user for permission
  • Optionaly, but this will complicate things further, allow for "incremental/diferential" backups and/or multiple backup versions
  • Some mechanism will be needed to create a new file ID whenever a user modifies a file that has been saved if more users have saved that same file
This is just a starting sketch: it has a long way to go, but when we're done,
I'm sure we can all take advantage of this!

*NOTE*: This is *NOT* to start coding! First we'll elaborate on
the idea, problems, solutions and only THEN will we start coding... [Smile]
_________________________
Later,   [b]Mad[/b]ruga