Cutting your chances of data loss

Data loss is probably the single most traumatic experience possible for those that store their data electronically. In recent years, I have had the good fortune to be spared of this event, touch wood, but I will be forever mourning the loss of the first computer game I wrote, back in the early 90’s on a Mac SE/30.  It was a hypercard stack, 2.1 Mb in size, so I couldn’t back it up on a single floppy.  Eventually, the 40Mb HDD in that great machine died, and I was crushed.  Years of work, all that creativity, a window on my teenage years.  Gone.

But it was just a game after all.  Recently a friend of mine lost pretty much all the photos of their first born child (3 months worth) due to a botched home server upgrade.  Crushing.

We all know the answer is backup, but many people just don’t get around to it, thinking, ‘yeah I should do that’.  Like many people, I have a server at home (Gentoo linux) that is my firewall, dhcp server etc. and of course file server.  I have a 4.5Tb RAID5 (7 x 750Gb drives) which is about 80% full of data that I’ve amassed over the years.  At the moment there are only two clients – a desktop for everyday use, and a media centre hooked up to the TV.  Even though I do have some level of data redundancy since I am using RAID5, data loss will still occur if more than one HDD fails.

Ok, so finally to the point of this post – to boost my data integrity (and aid in learning WPF), I have written a ‘folder mirror’ utility.

Folder Mirror Screenshot

Folder Mirror Screenshot

As you can see, the folder mirroring process can be paused and resumed at will, log files are maintained in a directory of your choice, and a system tray icon is shown, which dynamically displays the percent complete.  To configure which folders to mirror, the program reads a file called folderMirror.config, in which you can define as many folders to copy as desired.  The utility is designed to be used as part of a scheduled backup, such as a scheduled task.  I have it running every day, creating a mirror of  the data I care most about on the two client computers.  So now my chances of losing data due to HDD failure have been cut down to managable odds, and I can sleep much easier.

You can download the utility for free here.

UPDATE: This software is no longer maintained, I recommend you look at using PureSync as a much more powerful free alternative.

13 thoughts on “Cutting your chances of data loss

  1. Migalicious says:

    I can’t get this software to work, I keep getting syntax errors.

    rem Define the folders to mirror in this file.
    rem Syntax (with ‘rem’ keyword of course):
    rem “” “”

    rem Example:
    rem “c:\Users\John\Documents\WindowsPowerShell” “v:\_backup\desktop\WindowsPowerShell”

    rem Lastly, define the path to store resulting log files
    rem (this folder will be created if it doesn’t exist):
    “c:\Folder Mirror Logs”

  2. You need to remove the ‘rem’ keyword from the line that specifies the folder(s) to mirror. Also I just found and fixed a bug that would give you a syntax error if the log folder doesn’t exist. Now it will create the log directory if it doesn’t exist (as stated in the config file). This is available in v1.02 along with an updated folderMirror.config file that better describes the syntax.

  3. Zukav says:

    Is there any flag available for ignoring a sub-folder or file? For instance if I wanted to mirror my iTunes database folder, but didn’t want to include all the album art which is in a sub-folder.

  4. Question:
    Folder A is the original, and I have those files mirrored to Folder B.
    In Folder B, I delete one file. Does that deletion then also happen in Folder A, the next time the files get syncronized?
    My concern is that if I accidentally delete an important file in one of these, at the next synchronization the other one will replicate that accidental deletion and I’ve lost both copies.

    • Yes, that deletion will also happen in folder A next time the files get syncronized, since the program’s purpose is to ensure that there is a exact replica (mirror) of the source set of folders. When you wish to protect against accidental deletion, it comes down to the length of time you would like to give yourself before your file cannot be recovered. For example, if you mirror your files every night, you have given yourself 24 hours to recover from an accidental deletion. If you mirror your files every night, but each night to a different destination, say folders named with days of the week, then you have given yourself 7 days to recover, and so on. So it really depends on the amount of disk space you can spare. And of course the ultimate alternative is permanent backup, where you only backup the data once and never overwrite it.

  5. carrie says:

    can the destination folder be shared resource?I have a winbox and ubuntu server,in this case is it possible to syn winbox files to ubuntu server??

    Thank you,


  6. scheherazade says:

    Are all files copied, or is there a date/time/size check done so that unnecessary disk activity is avoided?
    What are the copy/ignore criteria for what triggers a file to be synced versus ignored?


    • scheherazade says:

      Also, what happens if you task kill the process mid copy? Will it complete the current file before servicing the signal, or will it exit immediately?


    • All files are copied, it is not optimized with any comparison criteria at the moment. What happens is that it deletes the destination area, and then does a full copy (I took the simple approach). I will look into adding that in, good suggestion.

Comments are closed.