BackUp
"Not Another Effin' Back-Up Tool!"
At last! A backup application that works exactly the way I want it to!
After years of searching for a Windows® backup utility that did what I wanted, I ended up writing it. A familiar story. BackUp does everything I need, a lot of what I want, and does it pretty well. But don't take my word for it, try it for yourself, for free.I've toyed with a great many Windows backup systems over the years, but none of them seem to fit my needs, or style of working. As well as a daily update of changed files, I like to take regular "snapshots" of work and settings, and in the end, the safest, most efficient method seems to be simply copying all your important files to a second location; keeping two copies. But I mostly don't want incremental or differential or totally new backups; I just want a single backup to stay up-to-date, synchronized, and maybe zipped, too, thanks.
Of course, this can all be done manually, but even the copying part can be hazardous; windows has a nasty habit of completely aborting a copy procedure if it can't copy even one single file, effectively leaving you in the crap, asking "so, what was copied, and what wasn't?"; most annoying, and a big time-waster. I used to use a tool called "Y-Copy" to get around this. There's also something called "unstoppable copier", that does a similar job. And while both are useful, they are extremely manual; I want a completely automatic solution, preferably on a schedule.
BackUp primarily acts as a pre-configurable "unstoppable copier" with optional synchronization. BackUp doesn't care if some file is locked, simply gets on with the next file. You can easily backup your entire home folder without having to worry about any of those pesky in-use system files halting the whole show.
As well as unstoppable copying, BackUp can automatically zip compress your data, saving massive amounts of space. In the real world, you don't need a backup until you REALLY NEED IT; hopefully never; so keeping them as small as possible makes sense, no matter how big your hard drives get. BackUp has quite a few other tricks up its sleeve, documented here and inside BackUp's preferences file (BackUp.ini).
Finally, BackUp can do Hash verification of all the files it copies, using MD5 (even SHA-1) hashing algorithms. If the copied file is not bit-perfect identical to the original, BackUp will delete it and try again. You can even configure how many times BackUp will attempt this.
These days, BackUp has a GUI, that is, a Graphical User Interface. BackUp presents itself as a simple "Quick Copy" file copier, enabling you to copy files and folders, even whole disks with optional hashing for bit-perfect file verification. This is handy for quick tasks, utilizing the "Unstoppable Copying" part of BackUp. To unleash the full power of BackUp, head to the "BackUp Sets" tab. This simple interface enables you to interact with all your BackUp sets, edit and run them. Generally, you want these BackUp Sets to run on a schedule, in the background, but this is a handy place to test BackUp sets, get reports and more.
It's quite spartan, for now. Getting a GUI was quite an event for BackUp, and the initial command-line driven logic still underpins everything about backup, even its GUI.
To get the most from BackUp, it is recommended that you read this document all the way through at least one time.Creating backup sets:
BackUp operates on "backup sets", which live inside BackUp.ini. A simple backup set might look like this..Inside the backup set* is a simple list things you would like to backup. These "things" can either be file paths; that is, file system locations with file masks; or Windows registry paths. A simple file backup command could look like this..[daily]
C:\reports=*.*
%=HKCU\Control Panel
C:\toolbars=*.*
Which instructs BackUp to backup everything in my toolbars folder. You can have any number of such commands inside each backup set. Registry backup is explained in more detail, below. Once you have created a set, you simply run the backup set.
* Anything underneath its [name] is considered to be "inside" the backup set, right up until BackUp encounters another [backup set].
multiple file masks..
You can add as many file masks as you need, separated by commas, and use wild cards, too (e.g. *, which basically means "anything", so *.* mean all files). This next example would backup all of the eight specified preference file types from my entire programs folder..@programsdir=*.cfg,*.ini,*.jcd,*.reg,*.lst,*.profile,*.mex,*.config
You probably noticed that I used the "token" @programsdir to refer to C:\Program Files, read on..
@tokens..
Tokens are special strings, preceded with an at sign ("@", aka. "commercial at"), that you can insert into your backup sets. Tokens are automagically transformed into their current value at run-time..@homedir
Current user's home folder.
@appdatadir
Current user's Application Data folder.
In their home folder. Known as "AppData" on Vista/Win7/8..
In their home folder. Known as "AppData" on Vista/Win7/8..
@appdatacommon
"All User's" Application Data folder.
@programsdir
Program files folder.
Usually, though not always, "C:\Program Files".
Usually, though not always, "C:\Program Files".
@mydocs
User's "My Documents" folder.
Usually, but not always inside their home folder
Usually, but not always inside their home folder
@windowsdir
"WINDOWS" folder.
Usually, but not necessarily, "C:\Windows".
Usually, but not necessarily, "C:\Windows".
User-specific tokens (like @appdatadir) will be expanded to whatever user is running the backup set. So, if you schedule a backup to run as user "foo", the token @homedir (for example) would be expanded to C:\Documents and Settings\foo. BackUp's portability enables settings to be optionally centralized, for simple, global administration of batch-specific parameters, or alternatively, enable settings in user's own home folders. And so long as a valid password is supplied during the schedule's creation, backups for any user can run inside any user's account.
It's a potential gotcha, but it means that you can run the exact same backup set under different credentials, and get different, user-specific backups. Very handy. Of course, you can simply specify full, real paths instead of tokens, and create different sets for each user. It's entirely up to you.
NOTE: If a directory entry is preceded by a pipe character ("|"), BackUp won't dig into the inner directories, and will backup only matching files from the top folder. e.g..
[recent reports]
|C:\Business\Reports=*.*
Registry backup..
In a very similar way as we add files to a backup, we can add registry keys..Many applications store their settings in the Windows Registry, and a backup of this information can save you a lot of time if you ever need to rewind your settings, or reinstall the application, or even windows itself; a procedure which inevitably obliterates all your carefully tuned preferences.
In my world, moving a window to position A, or putting a toolbar just there, is considered a task, one that took time, and one I'd rather not repeat, ever; especially those pesky toolbars. Same for any windows explorer setting. Along with many application preferences, these settings are stored in the Windows Registry.
Incorporating registry data in your backup is very easy; instead of path=mask, you simply do %=registry key. The percent character "%" instructs BackUp to treat the following command as a registry path, and backup will export that part of the registry to a plain text .reg file, for inclusion in the backup, like so..
%=HKEY_CURRENT_USER\Control Panel
You can use "short names" for registry paths, too; HKLM for HKEY_LOCAL_MACHINE, etc., either works fine. Right-clicking on any section of the registry (inside regedit.exe) and selecting Copy Key Name will get you your man, every time.
As with regular file paths, you can add as many registry keys (paths) as you need, to each backup set - this is especially useful for making backups of an application's settings where some are stored in regular ini/config files, and some are stored in the registry. BackUp allows you to grab both, and place them conveniently in the same backup.
command-line syntax
The command-line syntax (aka. "how to get BackUp to do your evil bidding") is very simple; add the name of your chosen backup set. For example, to run a backup set called "prefs", do..C:\Path\To\BackUp.exe prefs
note: if you are running your backup command from a DOS prompt/shell/cmd.exe/Run..., etc., you will probably need to put quotes "" around any paths with spaces in them, for example..
"C:\Long Path\To\BackUp.exe" prefs
Same story if name of the backup set has spaces in it (quite valid)..
C:\Path\To\BackUp.exe "my daily backup"
You can run multiple backup sets with a single command, too; simply separate their names with pipes, e.g..
C:\Path\To\BackUp.exe prefs|documents|reports
If any of the backup sets have spaces in their names, put quotes around the whole thing, like so..
C:\Path\To\BackUp.exe "prefs|my documents|business reports"
If you add switches to a multi-backup command, the switches will apply to ALL the backups, overriding the backup set's in-built switches and settings, if applicable.
You can put your command inside an explorer shortcut, batch file, Batch Runner job, Run dialog (Win+R, always handy for testing stuff), or, as Nature intended; the Windows Scheduler (see below).
Command-Line Switches
You can override most of your default parameters both inside the batch sets themselves, or with simple command-line switches. Combine as many as you need, in any order, for example, to run the "test" backup set with progress tip and zipping, you would do..C:\Path\To\BackUp.exe zt test
Here are the available switches, so far..
If these are already set positively in your preferences, you can disable them on the command-line, like so..s = synchronize the backup (add new and changed files to an existing backup of the same name)
t = show progress tip
z = zip the backup
l = log everything (default is to log only errors)
There is also a special switch..-s = do not synchronize (replace existing backup with fresh files)
-t = disable progress tip
-z = do not zip (raw copy backup - a simple unstoppable copier with synchronization)
-l = log nothing, even if there were errors.
r = report only (log what *would* have happened, but do not backup)
note: enable switches override disable switches, so if you enable zipping and also disable zipping on the same command-line (crazy person!) it will ultimately be enabled. Just so you know.
For a full explanation of the individual settings, see BackUp.ini.
Scheduling Backups..
Backups can be schedule to occur at any time, usually some time when you are asleep. This can be setup very easily using the Add Scheduled Task wizard inside your system's Scheduled Tasks Control Panel..Simply click on the Add Scheduled Task wizard, and run through the options. At the end of the wizard, ensure you check the Open advanced properties... checkbox, so you can add the name of the backup set onto the end of the "Run:" command, which is the actual command-line that will be executed when the scheduled item runs.
If you prefer, scheduling a backup can also be achieved with a simple shell command (i.e.. from a "run" dialog/shell prompt/batch file/etc.) using Windows' built-in schtasks program, like this (although it may split in your browser, the following command goes all on one line) ..
schtasks /create /sc daily /tn "my backup" /st 14:00:00 /tr "\"C:\Path\To\BackUp.exe\" daily" /ru UserName /rp PassWord
.. which would run the backup set [daily] at 2pm every day. Alter the details to suit your needs, correct username and password, etc. NOTE, schtasks has a lot more options; if you need more, the Windows Tech Centre at Microsoft has all the gory details. You can get to all the settings from the Scheduled Tasks Control Panel, if need be.
Depending on demand and other factors, future versions of BackUp may offer a GUI, and a button for this. You can schedule backups for multiple users, too. See the above notes about "Tokens" more details about multi-user backups.
100% Portable..
BackUp usually operates as a regular installed desktop application, keeping its settings inside your user folder, but BackUp can also operate in a completely portable state, and happily works from a pen-drive, DVD, floppy disk, or wherever you happen to be.To activate portable mode, simply drop a BackUp.ini file next to BackUp.exe.
You're done!
It's no problem to use both kinds of installation simultaneously, or to run BackUp in portable mode on a machine where BackUp is already installed, even run them both at once. Simply put, if there's a BackUp.ini next to it, BackUp will use it, and if there isn't an ini file there, BackUp uses the one in your user data folder (aka. "Application Data", aka. "AppData").
If you like applications to run in a portable state, even on your own desktop, no problem; you can skip the installer altogether and simply extract files.zip to wherever you like. It's in the installer's files/ directory. There's also a BackUp.ini inside the archive, so you can unzip-and-go.
etc..
Archives can be raw or zipped, automatically date and time stamped, and more. Check out the ini file for details of the specific settings.bugs:
no known bugs.
caveats:
It should be noted that BackUp uses the last part of the paths as the name for the folder, so if you added a path which was..
I:\work\words\concepts=*.*
the backup for that area would be in a folder called "concepts". This is a nice system, but if you were to include another path in this backup set, perhaps something like..
C:\toolbars\active scripts\reg\concepts=*.reg
because it too ends in "concepts", its files would be stored in the same folder as the first, which may or may not be what you want, files from later paths (in the backup set) overwriting files from earlier paths. If synchronization is enabled, the later files would only be copied into the backup if they were different from the earlier files.
Something to keep in mind when you create your backup sets.
note: registry backups use the full registry path as the file name, I don't know of a useful reason to allow them to overlap in any way.














