Overview

Features

  • Incremental backup: a new snapshot is created upon each run and only new or modified files are added to it
  • Binary deltas: only the portion (data slices) of the file that has changed is saved or restored
  • Data deduplication: across directories/snapshots/computers, prevent storing copied/renamed/moved contents or any data slice already in the catalog
  • Encryption support: generate password-protected backup sets
  • Graphical interface: provide a simple graphical interface which exposes all the features
  • Purge old data: remove from the catalog the oldest snapshots and associated data
  • Custom action: a custom script can be executed automatically when the backup process is finished
  • Multiple restore options: original location, different directory or merge with existing directories
  • Windows Shadow Copy support: integration with Windows VSS to handle opened files
  • Multi-volumes archive: split the backup archive in multiple, smaller files
  • A backup job can include multiple source directories
  • The configuration for each backup job is stored in independent configuration files
  • The integrity of the files extracted after a restore is verified
  • The program can be run non-interactively when executed in a batch job
  • Identify and differentiate between new and updated files
  • Provide a summary to review of what is going to be backed up or restored before proceeding
  • The dataset integrity is verified through different means during backup and restore
  • Provide ETA for long-lasting operations
  • Generate and store log file for each run
  • Provide file hashing with SHA-256
  • Keep track of elapsed time for each task and memory consumption

Documentation

A Quickstart help page containing details regarding the installation, configuration, usage and upgrades is provided within the package in the docs directory or online at [Quickstart] (https://sourceforge.net/p/zipsnapng/help/Quickstart)

How ZipSnapNG Works

During a backup job, the utility opens each file, apply the filters if configured and reads the content in chunks (by default 1 megabyte), checking if the hash of the data slice is already in the catalog. This to ensure that only new data is added to the archive and to avoid storing data slices already seen for saving space and provide data deduplication.
The backup job generates two files: a ZIP archive containing the new data slices and a catalog with a summary of all the snapshots, the files, their properties (filename, timestamp, size) and the referenced data slices. The configuration and a log file is also associated and saved to the same location.
Optionally, an external command can be run when the backup process is over.
After the first run, incremental backup will store in the catalog new or updated files and only the portion of data that has changed.
Upon each backup run or manually the archive is automatically purged to remove expired files from the catalog and delete from the ZIP archives data slices no more referenced by any file.

Information about an archive can be queried and the utility returns for each snapshot the number of files and the associated size in the backup folder. Details regarding files and directories included into a single snapshot can be requested as well.

During a restore job, a given snapshot is extracted from the archive. This can take place into the original location, into a different directory, or merged with an existing set of directories, as specified in the configuration file. Likewise a backup, each existing file is analyzed and only the data slices that need to be restored are extracted from the archive. The data extracted is then verified to ensure the job has been successful.

For both backup and restore, the utility runs an analysis at first and provide a summary, waiting for the user's input before proceeding.

About ZipSnapNG

Why ZipSnapNG?

ZipSnapNG is an enhanced version of ZipSnap (http://zipsnap.sourceforge.net).
The code has been almost completely rewritten to introduce new features and leverage a different logic when backing up/restoring the data.

License

ZipSnapNG is released with source code under the GNU General Public License (version 3).

Download and Changelog

All the versions of ZipSnapNG together with their changelog can be found from the following location: https://sourceforge.net/projects/zipsnapng/files

Source Code

The source code is available on GitHub at the following location: https://sourceforge.net/p/zipsnapng/code

Online Manual

The manual is available online at the following location: https://sourceforge.net/p/zipsnapng/help

Known issues and Roadmap

Known issues and accepted feature requests are listed at the following location: https://sourceforge.net/p/zipsnapng/tickets

Reporting a Bug

Feel free to report bugs or enhancement requests on: https://sourceforge.net/p/zipsnapng/bugtracker

Third Parties

The following libraries are included in the package and are required by the program:
- Classmexer (http://www.javamex.com/classmexer): to measure the memory usage of Java objects from within an application. The library is loaded only if a javaagent is provided by the init script.
- Zip4j (http://www.lingala.net/zip4j): to provide password-protected ZIP archives. The library has been customized to work with ZipSnapNG and specifically:
- closeEntry() to return a FileHeader - used to calculate compression ratio
- setFileNameInZip() honored even if the input is not a stream - used to set a filename different than the original
- setUncompressedSize() to set always the number of bytes read and not the original file size - used to save data slices of different size


Related

Help: Quickstart
Help: Welcome

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.