• Stars
    star
    175
  • Rank 218,059 (Top 5 %)
  • Language
    C++
  • License
    MIT License
  • Created almost 14 years ago
  • Updated about 7 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

An open source backup tool for Windows

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 *.*.

More Repositories

1

causatum

A Clojure library for generating streams of events based on stochastic state machines.
Clojure
232
star
2

shadowspawn

A Windows utility that mounts a shadow copy of the disk at a drive letter and then spawns an arbitrary command.
C++
184
star
3

dynne

A Clojure library for working with audio.
Clojure
100
star
4

khordr

A keyboard chording application: supercharge your typing by pressing more than one key at once.
Clojure
34
star
5

reasoned-schemer

A project in which I work my way through a Clojure version of "The Reasoned Schemer"
Clojure
32
star
6

emacs

My emacs setup
Emacs Lisp
16
star
7

podcastifier

Process a pile of wav files into something like a final podcast episode.
Java
11
star
8

vmt

Virtual Mission Tools (VMT) for Falcon BMS. Examine the battlefield, generate weather, and more.
Clojure
8
star
9

show-keys.el

Display what keys are being typed in emacs in real-time.
Emacs Lisp
8
star
10

gherkin-mode

An emacs major mode for editing gherkin files.
Emacs Lisp
8
star
11

artifact

The Artifact board game
Clojure
8
star
12

aws-stats

A simple project for analyzing the log files that S3 produces. Written in Clojure.
Clojure
8
star
13

sudo

A very simple sudo for Windows
C#
7
star
14

weathergen

A program to randomly generate convincing weather for Falcon BMS.
JavaScript
6
star
15

falconpanel

Arduino program for turning physical switches, knobs, and buttons into a DirectX game controller.
C++
6
star
16

clojure-concurrency

A presentation on concurrency primitives in Clojure
4
star
17

doc-browse

Generates an HTML page describing a set of Clojure libraries
Clojure
4
star
18

cccp-emacs

An emacs client for the Common Collaborative Coding Protocol.
Emacs Lisp
4
star
19

HelloPhoneGapAndroid

A simple PhoneGap application making use of ClojureScript
JavaScript
3
star
20

lsobot

A carrier landing grading tool for Falcon BMS.
Clojure
3
star
21

kchordr

This project has moved. New home: https://github.com/candera/khordr
C#
3
star
22

stopwatch

A simple stopwatch application with count up and countdown functionality.
C#
3
star
23

reponomicon

A git server that stores its metadata in Datomic.
Clojure
2
star
24

cs-atom

Export a CommunityServer SQL Server database into Atom suitable for import into Blogger
Clojure
2
star
25

eliza-clj

A simple wrapper around a Java implementation of Eliza.
Java
2
star
26

geirrod

Web front end for GitHub issues providing better grouping and sorting
Clojure
2
star
27

clojure-data-structures

A presentation about the immutable, persistent collections in Clojure
CSS
2
star
28

HelloPhoneGapple

A simple PhoneGap application that shows how to integrate ClojureScript (iOS version)
JavaScript
2
star
29

explosion-man

A Clojure version of BomberMan.
Clojure
2
star
30

backup

My backup script
Shell
2
star
31

slideshow

Clojure slideshow app
Clojure
1
star
32

geirrod-rails

A Rails implementation of the geirrod issue tracking system.
Ruby
1
star
33

tpanl

iPhone/Smart Phone keypress relay.
C#
1
star
34

csv-bom-converter

Converts BOM output from Fusion 360 into a cutlist that CutList Optimizer can read
Clojure
1
star
35

3d-models

Miscellaneous 3D models
OpenSCAD
1
star
36

namespaces-symbols-vars

A presentation about namespaces, symbols, and vars in Clojure
JavaScript
1
star
37

trempature

Displays the current outdoor temperature in the tray.
C#
1
star
38

icfp-2017

Entry in the ICFP 2017 contest for Team "Drop Table Team"
Clojure
1
star
39

scripts

Various useful scripts
Shell
1
star
40

logos-play

Clojure
1
star
41

foobar-the-second

Test project
1
star
42

clojuredc-xml

Slides from my 2015-05-26 presentation at clojuredc.org
1
star
43

cccp-mode

An emacs plugin for the Common Colaborative Coding Protocol.
Emacs Lisp
1
star
44

hotelibot

A Slack bot
Clojure
1
star
45

swivelbot

A remote-controlled turntable
Clojure
1
star
46

strangeloop-2013-datomic

My 2013 Strange Loop presentation entitled "Real-World Datomic: An Experience Report"
CSS
1
star
47

kpanl

Clojure-powered application for building graphical panels on your mobile device to send keystokes to an application.
Clojure
1
star
48

timekeeper

A Clojure application that will beep to indicate a series of on-off cycles. I use it to time exercises - 30 seconds on, 20 seconds off, five repeats. That sort of thing.
Clojure
1
star