John F. Dumas Vulcan Ware
_blank_
ZCOPY
Many windows backup programs back up their data to a single archive file. The risk in this approach is that if that archive file becomes corrupted the entire backup may be lost. Further, it is typically not possible to retrieve individual files directly, one must utilize the backup tool's interface.
ZCopy is a simple, command-line program consisting of a single exe and an ini file that governs zcopy's behavior. ZCopy always creates a parallel tree of folders and files rather than a single archive. You can download the program below with source code or as a pre-built binary. Also, below is the zcopy's documentation (which comes included as part of zcopy's example config file).
Source Code       Binary Distribution
# --------------------------------------------------------------------------
# Installation
#    All that's needed is two files:
#       - zcopy.exe
#       - zcopy.cfg (this file)
#
# Execution
#
#    The program is designed to always run in the
#    directory where zcopy.exe lives.  The zcopy
#    program may write a log file (zcopy.log) as
#    well as an html status/output file.  These
#    files are always written to the directory
#    containing zcopy.exe / zcopy.cfg.
#
#    To run the program:
#
#       zcopy.exe {theCfgFile}
#
#    If run without a cfg file name, zcopy.exe will
#    use the default name, 'zcopy.cfg'.
#
#    The behavior of zcopy.exe is determined
#    entirely by the contents of the .cfg file.
#
# Cfg File
#
#    The cfg file is stuctured like a windows .ini file:
#
#       [someSectionName]
#       someKey    = someValue
#       anotherKey = anotherValue
#
#       [anotherSectionName]
#       ...
#
#    Blank lines and lines beginning with '#' are ignored.
#
#    The cfg file must have an '[options]' section as
#    well as one or more '[entry]' sections.
#
#    Here's a full list of the [option] settings
#    along with their default values (if appropriate).
#
#       [options]
#       to           = {no default value}
#       update       = no
#       hidden       = yes
#       system       = yes
#       verbose      = no
#       force        = no
#       log          = yes
#       console      = yes
#       show_error   = yes
#       show_success = yes
#
#    All [options] settings are optional and can be omitted.
#    Here are descriptions of each setting:
#
#       to           -> the directory we'll be backing up to,
#                       needs to be an absolute path (i.e.
#                       c:\ or g:\backup)
#
#       update       -> if yes, only copy files that
#                       have changed since the last backup
#
#       hidden       -> if yes, copy hidden files and directories
#
#       system       -> if yes, copy system files and directories
#
#       verbose      -> if yes, write very detailed output
#                       about the program's progress and status
#
#       force        -> if yes, then only an out of disk space error
#                       stops us, any other errors we just report and
#                       continue onward
#
#       log          -> if yes, write any output to 'zcopy.log'
#
#       console      -> if yes, write output to console
#
#       show_error   -> if yes, pop-up html window on error
#
#       show_success -> if yes, pop-up html window on success
#
#     In addition to [options] we can have one or more
#     [entry] sections.  Each [entry] section sets up a
#     directory we want to copy from.  You can set up
#     as many [entry] sections as you want.
#
#     Here's a list of all [entry] settings:
#
#        [entry]
#        to      = {no default value}
#        from    = {no default value}
#        update  = {see below}
#        hidden  = {see below}
#        system  = {see below}
#        recurse = yes
#        exclude = {no default value}
#
#     Only 'from' is mandatory, all other settings
#     are optional.  Here are the setting descriptions.
#     Note that for all settings listed with [*] the
#     [options] value is used unless 
#
#       to           -> the directory we'll be backing up to,
#                       if not given, the 'to' setting from
#                       [options] will be used.
#
#       from         -> the directory we'll be backing up from,
#                       if 'from' was 'c:\stuff' and 'to' is
#                       'g:\files\backup', then we'll be backing up to:
#
#                          'g:\files\backup\c\stuff'
#
#       update       -> if given, this value overrides any value for
#                       update supplied in [options].
#
#       hidden       -> if given, this value overrides any value for
#                       hidden supplied in [options].
#
#       system       -> if given, this value overrides any value for
#                       system supplied in [options].
#
#
#       recurse      -> if yes, copy subdirectories of 'from'.
#
#       exclude      -> this setting can appear more than once, it
#                       specifies files or directories under 'from'
#                       that we do NOT want to copy.  Example:
#
#                          [entry]
#                          from = c:\
#                          exclude = c:\pagefile.sys
#
#                       Values for 'exclude' must be absolute paths.
#
# When setting up the .cfg file, the best way to start
# is from the command line.  Once you've got your .cfg file
# set up with your [options] and [entry] sections the way
# you want them, just run zcopy from the command line.
# Assume zcopy's installed to g:\backup\zcopy you'd do:
#
#    cd g:\backup
#    zcopy
#
# You should enable 'verbose' and 'console' while testing for
# maximum debugging capabilities.  Using 'force' is also advisable
# so you can get a full list of any files/directories that were
# not able to be backed up.  They'll look like this:
#
#    -- (Force Alert) -- Could not open: [f:\so-and-so\blah.txt] for reading
#
# Using those [ALERT] messages, you can tune your cfg file to
# omit problem files and directories (a typical example would be
# internet explorer's temporary internet files directory).
#
# Once you've got zcopy running and backing up everything you want,
# you'll want to schedule it to run every day, unattended.
#
# A good way to start is to set up your .cfg file to only
# back up a small directory.  You can then schedule zcopy
# to run in a few minutes (assume it's now 1:51 PM) ...
#
#    at 13:53 /interactive g:\backup\zcopy.exe
#
# Using /interactive is necessary to allow the program to
# pop-up the html status window.  Check zcopy.log and
# look for the html status window to determine if your
# at command ran successfully.
#
# Once this works, to schedule the backup to run every
# day at 3:00 AM ...
#
#    at 3:00 /interactive /every:M,T,W,Th,F,S,Su g:\backup\zcopy.exe
#
# This says to run zcopy at 3:00 am every day of the week
#
# --------------------------------------------------------------------------

[options]
   to           = z:\backup
   update       = no
   hidden       = yes
   system       = yes
   verbose      = yes
   force        = yes
   log          = yes
   console      = yes
   show_error   = yes
   show_success = yes

[entry]
   from   = v:\data
   to     = w:\save
   update = yes

[entry]
   from   = x:\important\files
   system = no

[entry]
   from    = y:\excel\year\2006
   recurse = no
   exclude = y:\excel\year\2006\old.files\save
   exclude = y:\excel\year\2006\largeFile1.xls
   exclude = y:\excel\year\2006\largeFile2.xls

Return to Main