Backup Vault
============
Version 0.3
A backup / restore / sync / verify utility for AmigaOS 3.x, with a MUI
graphical front end (BackupVault) and a matching command-line tool
(Backup).
A NOTE ON THE VERSION NUMBER
-----------------------------
This project was previously released as version 1.0 beta1. Since then
I decided to substantially rework both what it does and how it works
internally - many of the original routines were rewritten from
scratch, and whole new pieces were added that did not exist in
1.0 beta1 at all: the Job/Repository model, two-way and one-way Sync
Jobs, a choice of compression algorithms, richer archive metadata, and
a unified history log, among others.
Given how far the program has moved from that original 1.0 beta1, I
did not think it was honest to keep counting up from "1.0" as if this
were a direct continuation of that release. So the version numbering
was restarted at 0.3, on purpose - not a step backward, but a more
accurate baseline for what has, in practice, become a different and
still-evolving piece of software.
WHAT IT DOES
------------
- Define reusable Backup Jobs (a source + a destination Repository +
suffix/compression/check options) and Sync Jobs (two plain
directories kept mirrored, one-way or two-way), managed together in
one Jobs list.
- Back up a directory tree (or a single file) into one archive file,
with per-file checksums and a choice of compression.
- Two-way or one-way sync between two directories, using a per-job
baseline (size/date, falling back to an MD5 content check) to tell
"changed" apart from "deleted" apart from "conflicting" - a file
changed differently on both sides is never guessed at, only flagged.
- Restore an entire archive, or browse its contents and restore only
specific files and/or folders.
- Verify an existing archive's integrity without restoring anything.
- Import a backup archive found anywhere on disk, registering it (and
its Repository/Job, if needed) so it shows up in the Restore list.
- Keep a small, searchable history of every backup, restore, sync,
check, and deletion, with one click through to that run's full log.
REQUIREMENTS
------------
- AmigaOS 3.2 (this is what it was built and tested against; earlier
3.x versions may work but have not been tested).
- MUI 3.8 or later.
- The following third-party MUI custom classes must already be
installed on the target system (e.g. in MUI:Libs/mui/):
* TabGroup.mcc
* NList.mcc / NListview.mcc
BackupVault (the GUI) will fail to open its window if either of
these is missing.
- The command-line tool "Backup" does not need MUI or any custom
classes - it only needs dos.library.
- Optional: z.library, only if you want the "Deflate" compression
choice to actually compress anything (see COMPRESSION below). Not
required to run the program at all - without it, a job set to
Deflate simply stores its files uncompressed instead.
THIS IS BETA-QUALITY SOFTWARE - PLEASE READ BEFORE USING
----------------------------------------------------------
This is early, beta-quality software. It has been tested by the
author, but not extensively, and not with large or critical data
sets under real-world conditions.
BackupVault reads from and writes to your filesystem, including
restoring and syncing files that can overwrite or delete existing
ones. Like any software, it may contain bugs that could lead to data
loss or other damage. Sync Jobs in particular are a new feature, still
under active development and long-term testing - see SYNC JOBS below
for a more specific warning about them.
BY DOWNLOADING, INSTALLING OR RUNNING THIS SOFTWARE, YOU AGREE THAT:
- You do so entirely at your own risk, of your own free will, as
a voluntary test of beta software.
- The author (Serkan Dursun) accepts NO responsibility and NO
liability whatsoever for any data loss, data corruption,
hardware damage, or any other direct or indirect harm that may
result from using this software.
- You are responsible for keeping your own independent backups,
made with other, proven tools, of anything you care about
BEFORE testing this program with it.
- This software is provided "AS IS", with NO WARRANTY of any
kind, express or implied, including but not limited to fitness
for a particular purpose.
If you do not agree with the above, do not install or run this
software.
Bug reports and feedback are very welcome - see CONTACT below.
SYNC JOBS - AN ADDITIONAL WARNING
------------------------------------
Sync Jobs are the newest, least battle-tested feature in this
program. The program itself will remind you of this - the first time
you create a Sync Job, it shows a warning asking you to confirm you
understand the risk before it lets you save one. That warning is not
a formality: please keep an independent backup of both directories
involved in any Sync Job until you have seen it behave correctly on
your own data over time. If you hit a problem, please report it (see
CONTACT) - that is how this feature gets more trustworthy over time.
INSTALLATION
------------
1. Copy the BackupVault drawer to your Amiga (or a partition of your
choice).
2. Make sure TabGroup.mcc and NList.mcc/NListview.mcc are installed
(see REQUIREMENTS above).
3. Run "BackupVault" from Workbench or a Shell. The command-line
tool "Backup" can be run directly from a Shell - see
BackupVault.guide for its syntax.
COMPRESSION
-----------
Each Backup Job independently chooses one of:
- None - files are stored as-is.
- LZSS - a small, dependency-free compressor built into the
program itself.
- Deflate - real zlib compression, via the third-party z.library
(see REQUIREMENTS). If z.library is not installed when
a Deflate job actually runs, its files are simply
stored uncompressed instead - nothing fails, but check
the Restore tab's Compression column to see what a
given archive actually ended up using.
DOCUMENTATION
-------------
See BackupVault.guide (AmigaGuide format) for a full description of
every screen and feature. Open it with Multiview, or any other
AmigaGuide reader.
FILES CREATED BY THE PROGRAM
-----------------------------
PROGDIR:logs/ - one log file per backup/restore/
sync/check run
PROGDIR:BackupVault.catalog - history of past backups/restores/
syncs/checks/deletions
PROGDIR:BackupVault.repos - saved Repositories (backup
destinations)
PROGDIR:BackupVault.jobs - saved Backup Jobs
PROGDIR:BackupVault.syncjobs - saved Sync Jobs
PROGDIR:BackupVault.sync.<name> - one per Sync Job, its baseline
(what both sides looked like after
its last successful run)
None of these are required for the program to run, and can be
deleted freely - you will simply lose your History list and your
saved Repositories/Jobs (and, for a Sync Job's own baseline file, its
next run will treat every file as new rather than picking up where
the last run left off).
KNOWN LIMITATIONS
------------------
- Every backup produces a full, standalone archive - there is no
incremental backup support.
- The built-in LZSS compression is a small, from-scratch
implementation, chosen to avoid extra library dependencies. It
will not compress as well as Deflate or a dedicated compressor.
- Sync Jobs are new and still being tested in real-world use - see
SYNC JOBS above.
- As beta-quality software, testing so far has been limited - see
the disclaimer above.
CONTACT
-------
Serkan Dursun
blasterreal@gmail.com
Please include the relevant log file from PROGDIR:logs/ when
reporting a problem, if you can.
CREDITS
-------
Built with SAS/C 6.58 and MUI, using the third-party TabGroup.mcc
and NList.mcc/NListview.mcc custom classes. Deflate compression uses
the third-party z.library (salass00/z_lib). MD5 (used by Sync Jobs to
detect real content changes) is Colin Plumb's 1993 public-domain
implementation.
|