/hobocopy

An open source backup tool for Windows

Primary LanguageC++MIT LicenseMIT

STATUS

Hobocopy is no longer under active development. As far as I know, it still works, but even I don't use it any more. Instead, I use a tool I wrote called Shadowspawn plus something like robocopy or rsync. I consider Shadowspawn the replacement for hobocopy.

You are welcome to download hobocopy and use it, and I still try to answer questions, but I won't be releasing new versions. You are welcome to fork the project - the license (MIT) is very permissive.

WHAT IS HOBOCOPY?

HoboCopy is a backup/copy tool. It is inspired by robocopy in both name and in functionality. It differs greatly from robocopy, however, in two respects:

  1. It is not as full-featured as robocopy.
  2. It uses the Volume Shadow Service (VSS) to "snapshot" the disk before copying. It then copies from the snapshot rather than the "live" disk.

INSTALLING HOBOCOPY

Most users can simply unzip the file containing hobocopy.exe into the directory of your choice. However, HoboCopy uses the Visual C++ 8.0 runtime, which may not be present on some machines. If HoboCopy does not work for you, run the vcredist executable available from the same location you downloaded HoboCopy.

WHY DOES HOBCOPY USE THE VOLUME SHADOW SERVICE?

Because HoboCopy copies from a VSS snapshot, it is able copy even files that are in locked by some other program. Further, certain programs (such as SQL Server 2005) are VSS-aware, and will write their state to disk in a consistent state before the snapshot is taken, allowing a sort of "live backup". Files locked by VSS-unaware programs will still be copied in a "crash consistent" state (i.e. whatever happens to be on the disk). This is generally a lot better than not being able to copy the file at all.

IS HOBOCOPY A BACKUP TOOL?

Well, not exactly. It can be used that way, but it doesn't do a few things that "real" backup tools to. For example, there's currently no support for differential copies. Also, it does not currently make use of the OS support for doing backups that would allow it to do things like copy even files it does not nominally have permission to copy.

The other caveat is that HoboCopy is a hobby project. Therefore, it is not recommended that anyone use it as a backup strategy for valuable information

  • no warranty is provided in the event that something goes wrong.

That said, the author of the tool uses it to back up his own systems.

USAGE:

hobocopy [/statefile=FILE] [/verbosity=LEVEL] [ /full | /incremental ]
         [ /clear ] [ /skipdenied ] [ /y ] [ /simulate ] [/recursive]
         src dest [file [file [ ... ] ]

Recursively copies a directory tree from src to dest.

/statefile   - Specifies a file where information about the copy will
               be written. This argument is required when /incremental
               is specified, as the date and time of the last copy is
               read from this file to determine which files should be
               copied.

/verbosity   - Specifies how much information HoboCopy will emit
               during copy. Legal values are: 0 - almost no
               information will be emitted. 1 - Only error information
               will be emitted. 2 - Errors and warnings will be
               emitted. 3 - Errors, warnings, and some status
               information will be emitted. 4 - Lots of diagnostic
               information will be emitted. The default level is 2.

/full        - Perform a full copy. All files will be copied
               regardless of modification date.

/incremental - Perform an incremental copy. Only files that have
               changed since the last full copy will be copied.
               Specifying this switch requires the /statefile switch
               to be specified, as that's where the date of the last
               full copy is read from.

/clear       - Recursively delete the destination directory before
               copying. HoboCopy will ask for confirmation before
               deleting unless the /y switch is also specified.

/skipdenied  - By default, if HoboCopy does not have sufficient
               privilege to copy a file, the copy will fail with an
               error. When the /skipdenied switch is specified,
               permission errors trying to copy a source file result
               in the file being skipped and the copy continuing.

/y           - Instructs HoboCopy to proceed as if user answered yes
               to any confirmation prompts. Use with caution - in
               combination with the /clear switch, this switch will
               cause the destination directory to be deleted without
               confirmation.

/simulate    - Simulates copy only - no snapshot is taken and no copy
               is performed.

/recursive   - Copies subdirectories (including empty ones). Shortcut: /r

src          - The directory to copy (the source directory).
dest         - The directory to copy to (the destination directory).
file         - A file (e.g. foo.txt) or filespec (e.g. *.txt) to copy.
               Defaults to *.*.