zpaqfranz - Man Page
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
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