For quite a while (read “way too long”) I’ve relied on a simple batch script that uses xcopy to throw my file up on to my NAS box. This had some pretty significant drawbacks- one being that every time the script ran it wrongly determined the age of the source files to be newer that those on the NAS box and would copy all 4ooGb up again, taking forever. Another serious issue was the lack of deleting files on the NAS when the ceased to exist on the source PC, meaning the NAS slowly filled up as I moved, deleted and renamed files on my PC.
Windows Vista and 7, XCopy has been replaced with Robocopy. Robocopy is a slightly better XCopy which supports deleting files on the target when they no longer exist on the source. Sadly, Robocopy still had serious issues understanding the file ages and still copied everything each time it was run.
First up was AllwaySync. This is a perfectly capable windows tools which a decent UI but the free version limits the amount of data it will sync each week. This meant that one weeks editing particularly large files would mean other folders couldn’t be synced- a crippling issue as far as I was concerned. The paid version wasn’t too expensive but I decided to be cheap and press on for a free solution. For the record, I like supporting small developers and will often pay for pro versions, just not when the software does something I consider too trivial to warrant a paid solution!
I was pointed to Syncback. It has a free version and, whilst not being the prettiest software in the world, it does a fantastic job of keeping folders synced up with tons of options. It can automatically sign in to your protected SMB shares, schedule backups and has a lot of options to get it to do just what you want. I’m currently using it for my windows back up and can’t fault it. Recommended for those times where Windows is pretty much the only choice.
There is something I prefer to Syncback when using Linux though: rsync. rsync is a popular and widely used tool for both one off synchronisations and regular backup jobs; it is used in industry for some hefty syncing and, when combined with a cron job, becomes the ultimate way of syncing large amounts of data short of a hardware or file system solution. I won’t go into the setting up of it now but there is plenty of tutorials (this one is especially good), well worth looking into if you have a lot of stuff to sync/copy/move.
One last honorable mention is the rsync extension, rsnapshot. This couples rsync to some configurable magic around making and maintaining seperate snapshots of your data at various times. If you have the space to keep multiple back ups, you really can’t ask for a nicer solution than rsnapshot.