Man page - zpaqfranz(1)

Packages contains this manual

Manual

ZPAQFRANZ

NAME
SYNOPSIS
DESCRIPTION
COMMANDS
OPTIONS
EXIT STATUS
AVAILABILITY
BUGS
ENVIRONMENT
LIMITATIONS
FEATURES
SEE ALSO
AUTHORS
EXAMPLE 1 create a temporary file, add /etc to mybackup.zpaq
EXAMPLE 2 create another version ("snapshot") with different content
EXAMPLE 3 show archive info (two versions/"snapshots", 1 and 2)
EXAMPLE 4 list the two different versions (look at different file size)
EXAMPLE 5 restore the first version of /etc/testfile.txt (aka: rollback to"snapshot" #1)

NAME

zpaqfranz - Swiss army knife for backup and disaster recovery

SYNOPSIS

zpaqfranz command archive [".zpaq"] [ files|directory ]... [- switches ]...

DESCRIPTION

zpaqfranz is like 7z or RAR on steroids, with versions/"snapshots"

Conceptually similar to Mac time machine, but much more efficiently
Keeps backup always-to-always, no need to ever prune (CryptoLocker)
Easily handles millions of files and TBs of data, non-latin support
Cloud backups with full encryption, minimal data transfer/bandwidth
Data integrity check CRC32+XXHASH|SHA-1|SHA-2|SHA-3|MD5|XXH3|BLAKE3
Thorough data verification, multithread support (real world 1GB+/s)
Specific zfs handling functions,full multiplatform interoperability
Particularly suitable for minimal space storage of virtual machines
Windows, FreeBSD, OpenBSD, Linux, MacOS, Solaris, OmniOS and others

COMMANDS

archive assume by default a ".zpaq" extension.

If archive contains wildcards "*" or "?", then the archive is multipart, where "*" matches the part number and "?" matches single digits. The concatenation starts from 1.
For example, "arc??" would match the concatenation of
"arc01.zpaq",
"arc02.zpaq",
"arc03.zpaq" (...)
until the last one.
DO NOT FORGET THE DOUBLE
QUOTEs!

The help is embedded : please use that or read the wiki on github

zpaqfranz : short version
zpaqfranz h : list of commands and switches
zpaqfranz h h : help on everything (ALL IN)
Help on XXX : zpaqfranz h XXX
Examples of XXX : zpaqfranz -he XXX
XXX can be a COMMAND
1on1 : Delete folder2's files with same name/hash of folder1
a : Add or append files to archive
autotest : Autotest for hidden errors after compiling from source
b : CPU benchmark, speed index in (yes!) franzomips
backup : Backup with hardened multipart
c : Compare one master dir against one or more slave dir(s)
consolidatebackup : Consolidate multipart backup
cp : Friendly file copy with ETA (resumable)
d : Deduplicate files inside a single folder WITHOUT MERCY
dir : A better dir (yes, Windows' dir)
dirsize : Show cumulative folder(s) size
e : Extract file(s) on current folder
f : Free disk space fill (=reliability test) or wipe (privacy)
find : Search file(s) with wildcards
fzf : List archive filenames 'plain-and-dirty'
i : File (archive) information
isopen : Check if a file isopen (by other software)
k : Kill (delete) everything not in archive (RISKY!)
l : List file(s)
last : Get last multipart filename
last2 : Compare last2 rows
m : Merge (consolidate) multipart archive into one
n : Decimate (keeping the newer X) older files
p : Paranoid test (slow, lot of RAM needed)
password : Change/remove password of single archive (no multipart)
pause : Halt script execution until time or keypress
r : Robocopy one master to multiple slave folders
rd : Remove hard-to-delete Windows' folder (ex. path too long)
rsync : Delete rsync's dangling temporary files
s : Get dir(s) size, return free disk space
sum : Calc hash/checksums, find duplicated files
t : Test archive integrity
testbackup : Multipart hardening
trim : Trim .zpaq archive from incomplete transaction
utf : Convert filenames to latin, fix too long filenames etc
v : Verify archive (against filesystem)
versum : Hashdeep-like double check of hashes
w : Chunked extraction/test of very big files
x : Extract file(s)
z : Remove empty directories
zfsadd : Freeze zfs' snapshots inside archive
zfsbackup : Backup of zfs' streams
zfslist : List zfs' snapshots with wildcard
zfsproxbackup : Backup of proxmox on zfs
zfsproxrestore : Restore of proxmox on zfs
zfspurge : Purge snapshots with wildcards
zfsreceive : Restore (with zfs) from zpaq archive
zfsrestore : Restore from extracted .zfs stream

OPTIONS

Embbedded help on optional switches
zpaqfranz h main : main switches
zpaqfranz h franz : zpaqfranz's switches
zpaqfranz h normal : 2nd line switches
zpaqfranz h voodoo : nerd things

EXIT STATUS

0=successfull, 1=warning, 2=error

AVAILABILITY

https://github.com/fcorbelli/zpaqfranz
https://sourceforge.net/projects/zpaqfranz/

BUGS

Provided as-is, with no warranty whatsoever.

ENVIRONMENT

Running on "weird things" requires compiling with the right switches
-DNOJIT : Not-Intel CPU (ex. Apple M1/M2, ARM...)
-DSOLARIS : Solaris-based OS
-DANCIENT : Very old system (cheap NAS...)
-DBIG : BIG ENDIAN
-DESX : ESXi server
-DALIGNMALLOC : Enforce mem alignment (sparc64...)
-DHWSHA2 : Enable HW SHA support (Ryzen...)
Use the autotest command if necessary.
If the executable is named "dir" act (just about)... like Windows' dir
If the executable is named "robocopy" runs... some kind of robocopy-like
WET RUNS (-kill automagically enabled), with -space enabled.
ex robocopy /tmp/zp /tmp/backup1 /tmp/backup2

LIMITATIONS

zpaqfranz currently does not store owner/group (it will be in the future).
If you really need you must use tar.
"Strange" systems with little memory (NAS, ESX servers...) can crash.

FEATURES

zpaqfranz supports -stdin and -stdout (zpaq does not)

SEE ALSO

bzip2(1) gzip(1) p7zip(1) rar(1) unzip(1) zip(1) zpaq(1)

AUTHORS

This is a fork of zpaq 7.15 (released to public domain by Matt Mahoney) made by Franco Corbelli and released under MIT in 2021-2023.

Licenses of various software (more details in the source code)

Public domain for zpaq, libzpaq, AES from libtomcrypt by Tom St Denis,salsa20 by D. J. Bernstein, mod by data man and reg2s patch from encode.su forum Sha1Opt.asm, 7zAsm.asm by Igor Pavlov, PDCursesMod and SHA-Intrinsics; MIT for Code from libdivsufsort 2.0 (C) Yuta Mori, 2003-2008, Embedded Artistry, Nilsimsa implementation by Sepehr Laal; zlib for Crc32.h Copyright (c) 2011-2019 Stephan Brumme, part of hash-library ( MD5, SHA-3 ), crc32c.c Copyright (C) 2015 Mark Adler; The Unlicense for wyhash (experimental) by WangYi; BSD 2 for xxHash Copyright (C) 2012-2020 Yann Collet; CC0 1.0 / Apache License 2.0 for the BLAKE3 hasher and HighWay64 hasher; Nothing explicit, seems BSD for Whirlpool by Paulo Barreto and Vincent Rijmen; almost-unrestricted Twofish implementation by Niels Ferguson.

EXAMPLE 1 create a temporary file, add /etc to mybackup.zpaq

echo test_ONE >/etc/testfile.txt
zpaqfranz a /tmp/mybackup.zpaq /etc

EXAMPLE 2 create another version ("snapshot") with different content

echo test_TWO_FILE_LONGER_THAT_THE_FIRST >/etc/testfile.txt
zpaqfranz a /tmp/mybackup.zpaq /etc

EXAMPLE 3 show archive info (two versions/"snapshots", 1 and 2)

zpaqfranz i /tmp/mybackup.zpaq

EXAMPLE 4 list the two different versions (look at different file size)

zpaqfranz l /tmp/mybackup.zpaq -find testfile.txt -until 1
zpaqfranz l /tmp/mybackup.zpaq -find testfile.txt -until 2

EXAMPLE 5 restore the first version of /etc/testfile.txt (aka: rollback to"snapshot" #1)

zpaqfranz x /tmp/mybackup.zpaq /etc/testfile.txt -to /tmp/restoredfolder/the_first.txt -until 1 -space
cat /tmp/restoredfolder/the_first.txt