Simplify Windows Backup Management: Use "mklink" to "bundle" your target backup folders

I've been using Crashplan to back up my 10Gb worth of files from my Windows 7 workstation to a local SD card.  It works nicely.  I like Crashplan.

But this DIY'er is in need of Cloud backup, and I am too much of a cheapskate to pony up for packaged set-and-forget solutions.  And I already have an Amazon S3 account.

I found SprightlySoft's S3Sync command line utility, which is free for personal use.  It facilitates backup of local files to an Amazon S3 bucket.  And yes, their docs show that you can specify regular-expression-based filename exclusion patterns in the tool invocation.

Crashplan also allows you to cherry-pick folders targeted for backup.

But what I really want to discuss is a way to simplify management of the folders you want to back up, cherry-picking and command-line options be damned.

I would nominally be inclined to simply target my user root folder, a.k.a. %USERPROFILE%, which is C:\Users\bshensky in my case.  But really, I do not want/need to back up all the cache data stored in AppData, Searches, Roaming, Contacts, Favorites, or any of the other folders that Microsoft puts here.  I really want to target Desktop, Documents, Downloads, Music, Pictures and Videos - the folders in which genuine user-generated content resides.

I wished to "Bundle" these folders so only they would be represented, and represented easily by the ID of the container they're in.  And then it hit me - Windows now supports folder links, just like its Unix/Linux counterparts.

I read:
http://en.wikipedia.org/wiki/NTFS_symbolic_link
http://en.wikipedia.org/wiki/NTFS_junction_point

Then I tried it out - I created a standalone folder called "C:\Backup", and executed the following:

C:\Backup>mklink /j Desktop c:\Users\bshensky\Desktop
Junction created for Desktop > c:\Users\bshensky\Desktop

C:\Backup>mklink /j Documents c:\Users\bshensky\Documents
Junction created for Documents > c:\Users\bshensky\Documents

Before long, I had a SINGLE folder root that represented ONLY the folders I was interested in backing up.

I tried S3Sync, targeting the SINGLE folder root of C:\Backup - it worked PERFECTLY! (Note: the ^ carets are the "command continuation" marker in CMD.EXE):

"C:\Program Files (x86)\SprightlySoft\S3 Sync\S3Sync.exe" ^
 -AWSAccessKeyId xxxxx ^
 -AWSSecretAccessKey xxxxx ^
 -BucketName MYBUCKETNAME ^
 -SyncDirection Upload ^
 -DeleteS3ItemsWhereNotInLocalList true ^
 -LogOnlyMode false ^
 -OutputLevel 2 ^
 -CompareFilesBy ETag ^
 -LogFilePath "C:\S3SyncLog.txt" ^
 -UploadHeaders "x-amz-storage-class:REDUCED_REDUNDANCY" ^
 -ExcludeLocalFilesRegularExpression ".*\.(au|vmdk|iso)$" ^
 -LocalFolderPath "C:\Backup"

I then tried the same in Crashplan - I got rid of the hodgepodge of cherry-picked folders and instead just targeted C:\Backup.  Success!

So, the takeaway here is that the new "mklink" utility that Windows 7 sports can aid in eased management of backup and recovery.  There's nothing really new here, just a technique that might make your life a little less complicated.