How I backup, from the point of view of (the incredible) XYplorer

Posted in XYplorer‘s user forum, under the topic “Other Software > How I backup”:

A month or so ago, I had my first true hard drive failure (terabyte! luckily recovered everything), followed a few days later by my five-year-old computer, which just wouldn’t turn on anymore…not even the initial BEEP. So much for the recovery disk.

I now have a four year contract with crashplan, which is only around four bucks a month. Once a day, or whenever I press a button, it backs up my computer to both an external hard drive and to their servers. It also backs up my wife’s laptop to MY computer…which is then backed up to those other two places. Pretty neat. All included in the four bucks. My wife’s only got a couple gigs of critical data, I’ve got several hundred gigs. Much of it music…including 38 gigs of Billy Joel *audio*, thank you very much :)

I also backup individual critical things to bitbucket, which is a Git repository, which is normally used for version control and branching of programming projects. For example, my XY configuration (C:\Users\aliteralmind\AppData\Roaming\XYplorer\) is a Git repository. Whenever I make any significant change, I save its configuration, shut down XY (not sure if shutting down is critical, but I’m nervous something might not be fully saved…), then in a shell/command prompt, I go to that directory and run either the following script with something like

git_add_commit_push_master.bat "Added custom toolbar button for custom layouts"

REM For use in all project sandboxes.
REM Save this in the project's root directory,
REM with the name:
REM    git_add_commit_push_master.bat

;set branch=%1
;set commit_msg=%2
set branch=master
set commit_msg=%1

REM ECHO The commit message is the one and only command-line parameter.
REM ECHO About to do
REM    THE FOLLOWING LINE SHOULD BE colon-upright slash!
REM    NOT an *EMOJI* <span>!!!
REM ECHO 1.  git add --all :/
REM ECHO 2.  git commit -m &quot;%commit_msg%&quot;
REM ECHO 3.  git push -u origin %branch%
REM PAUSE Press a key to proceed.

git add --all :/
git commit -m %commit_msg%
git push -u origin %branch%

Or more often just call the following script with no command-line parameters:


call git_add_commit_push_master.bat &quot;Quick save (no message)&quot;

To quickly get to any repository’s directory I have an item in my XY catalog to copy it:

For example:

I am starting to use Listary in place of these catalog items (Although it’s annoying in Listary, to have to find the directory, then press the right arrow, then type “cpc” to copy-path-to-clipboard, and then enter to confirm. The author says the upcoming version will make this easier.)

Even though I likely don’t need versioning (and definitely don’t need branching!) for my XY configuration, it’s nice to know older versions are out there in case I backup something that’s truly messed up. Every now and then I just completely recreate the repository, to obliterate old versions (keeping track of every version, git repositories can balloon in size).

What’s beautiful about this is that everything is offline. Dropbox and mediafire and similar cloud tools are always online…always attached to your computer, so if you’re hit with something like crypto locker or some bad virus, then your dropbox–all of your backups!!–are immediately infected as well. For me this is an obvious dealbreaker, and I would be surprised if a “disconnect every time” version wasn’t eventually offered. With crashplan and bitbucket (and github, etc.), they’re backed up and then immediately disconnected, each time, which is so much safer.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s