-
Notifications
You must be signed in to change notification settings - Fork 27
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
289 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,289 @@ | ||
.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.40) | ||
.\" | ||
.\" Standard preamble: | ||
.\" ======================================================================== | ||
.de Sp \" Vertical space (when we can't use .PP) | ||
.if t .sp .5v | ||
.if n .sp | ||
.. | ||
.de Vb \" Begin verbatim text | ||
.ft CW | ||
.nf | ||
.ne \\$1 | ||
.. | ||
.de Ve \" End verbatim text | ||
.ft R | ||
.fi | ||
.. | ||
.\" Set up some character translations and predefined strings. \*(-- will | ||
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left | ||
.\" double quote, and \*(R" will give a right double quote. \*(C+ will | ||
.\" give a nicer C++. Capital omega is used to do unbreakable dashes and | ||
.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, | ||
.\" nothing in troff, for use with C<>. | ||
.tr \(*W- | ||
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' | ||
.ie n \{\ | ||
. ds -- \(*W- | ||
. ds PI pi | ||
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch | ||
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch | ||
. ds L" "" | ||
. ds R" "" | ||
. ds C` "" | ||
. ds C' "" | ||
'br\} | ||
.el\{\ | ||
. ds -- \|\(em\| | ||
. ds PI \(*p | ||
. ds L" `` | ||
. ds R" '' | ||
. ds C` | ||
. ds C' | ||
'br\} | ||
.\" | ||
.\" Escape single quotes in literal strings from groff's Unicode transform. | ||
.ie \n(.g .ds Aq \(aq | ||
.el .ds Aq ' | ||
.\" | ||
.\" If the F register is >0, we'll generate index entries on stderr for | ||
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index | ||
.\" entries marked with X<> in POD. Of course, you'll have to process the | ||
.\" output yourself in some meaningful fashion. | ||
.\" | ||
.\" Avoid warning from groff about undefined register 'F'. | ||
.de IX | ||
.. | ||
.nr rF 0 | ||
.if \n(.g .if rF .nr rF 1 | ||
.if (\n(rF:(\n(.g==0)) \{\ | ||
. if \nF \{\ | ||
. de IX | ||
. tm Index:\\$1\t\\n%\t"\\$2" | ||
.. | ||
. if !\nF==2 \{\ | ||
. nr % 0 | ||
. nr F 2 | ||
. \} | ||
. \} | ||
.\} | ||
.rr rF | ||
.\" | ||
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). | ||
.\" Fear. Run. Save yourself. No user-serviceable parts. | ||
. \" fudge factors for nroff and troff | ||
.if n \{\ | ||
. ds #H 0 | ||
. ds #V .8m | ||
. ds #F .3m | ||
. ds #[ \f1 | ||
. ds #] \fP | ||
.\} | ||
.if t \{\ | ||
. ds #H ((1u-(\\\\n(.fu%2u))*.13m) | ||
. ds #V .6m | ||
. ds #F 0 | ||
. ds #[ \& | ||
. ds #] \& | ||
.\} | ||
. \" simple accents for nroff and troff | ||
.if n \{\ | ||
. ds ' \& | ||
. ds ` \& | ||
. ds ^ \& | ||
. ds , \& | ||
. ds ~ ~ | ||
. ds / | ||
.\} | ||
.if t \{\ | ||
. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" | ||
. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' | ||
. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' | ||
. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' | ||
. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' | ||
. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' | ||
.\} | ||
. \" troff and (daisy-wheel) nroff accents | ||
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' | ||
.ds 8 \h'\*(#H'\(*b\h'-\*(#H' | ||
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] | ||
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' | ||
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' | ||
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] | ||
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] | ||
.ds ae a\h'-(\w'a'u*4/10)'e | ||
.ds Ae A\h'-(\w'A'u*4/10)'E | ||
. \" corrections for vroff | ||
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' | ||
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' | ||
. \" for low resolution devices (crt and lpr) | ||
.if \n(.H>23 .if \n(.V>19 \ | ||
\{\ | ||
. ds : e | ||
. ds 8 ss | ||
. ds o a | ||
. ds d- d\h'-1'\(ga | ||
. ds D- D\h'-1'\(hy | ||
. ds th \o'bp' | ||
. ds Th \o'LP' | ||
. ds ae ae | ||
. ds Ae AE | ||
.\} | ||
.rm #[ #] #H #V #F C | ||
.\" ======================================================================== | ||
.\" | ||
.IX Title "STDIN 1" | ||
.TH STDIN 1 "2022-09-04" "perl v5.32.1" "User Contributed Perl Documentation" | ||
.\" For nroff, turn off justification. Always turn off hyphenation; it makes | ||
.\" way too many mistakes in technical documents. | ||
.if n .ad l | ||
.nh | ||
.SH "NAME" | ||
zpaqfranz \- Swiss army knife for backup and disaster recovery | ||
.SH "SYNOPSIS" | ||
.IX Header "SYNOPSIS" | ||
zpaqfranz \fIcommand\fR \fIarchive\fR[\f(CW\*(C`.zpaq\*(C'\fR] [\fIfiles|directory\fR]... [\-\fIswitches\fR]... | ||
.SH "DESCRIPTION" | ||
.IX Header "DESCRIPTION" | ||
\&\fIzpaqfranz\fR is something like 7z or \s-1RAR\s0 on steroids, with deduplicated \*(L"snapshots\*(R" (versions) | ||
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 | ||
.PP | ||
.Vb 1 | ||
\& Windows, FreeBSD, OpenBSD, Linux, MacOS, Solaris, OmniOS and others | ||
.Ve | ||
.SH "COMMANDS" | ||
.IX Header "COMMANDS" | ||
\&\fIarchive\fR assume by default a \f(CW\*(C`.zpaq\*(C'\fR extension. | ||
.PP | ||
If \fIarchive\fR contains wildcards \f(CW\*(C`*\*(C'\fR or \f(CW\*(C`?\*(C'\fR, then the archive is | ||
multipart, where \f(CW\*(C`*\*(C'\fR matches the part number and \f(CW\*(C`?\*(C'\fR matches | ||
single digits. The concatenation starts from 1. | ||
For example, \f(CW\*(C`arc??\*(C'\fR would match the concatenation of | ||
\f(CW\*(C`arc01.zpaq\*(C'\fR, | ||
\f(CW\*(C`arc02.zpaq\*(C'\fR, | ||
\f(CW\*(C`arc03.zpaq\*(C'\fR (...) | ||
until the last one. | ||
\s-1DO NOT FORGET THE DOUBLE\s0 QUOTEs! | ||
.PP | ||
The help is embedded : please use that or read the wiki on github | ||
.PP | ||
.Vb 5 | ||
\& 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 | ||
\& a : add files to archive | ||
\& autotest : operational self test | ||
\& b : benchmark and CPU stresser | ||
\& c : dir compare | ||
\& cp : copy files (with ETA) | ||
\& d : deduplication | ||
\& dir : just about a mini Windows\*(Aq dir | ||
\& dirsize : folder size into an archive | ||
\& f : fill (or wipe) drive space | ||
\& i : information | ||
\& k : kill files not in archive | ||
\& l : list archive content | ||
\& m : merge (consolidate) multipart archives | ||
\& n : decimation | ||
\& p : paranoid test | ||
\& password : set/change/remove password | ||
\& pause : just like \*(Aqpause\*(Aq in Windows\*(Aq batch | ||
\& r : something like multithreaded robocopy | ||
\& rsync : delete rsync temporary files | ||
\& s : return size of folders and free spaces | ||
\& sum : hashing / deduplication finder | ||
\& t : test archive\*(Aqs integrity | ||
\& trim : trim (reduce size) of incompleted archives | ||
\& utf : test and fix "strange" filenames | ||
\& v : verify archive\*(Aqs hashes against filesystem | ||
\& w : chunked "RAMDISK" test\-extraction | ||
\& x : extraction | ||
\& z : delete empty directory (zero length) | ||
.Ve | ||
.SH "OPTIONS" | ||
.IX Header "OPTIONS" | ||
.Vb 1 | ||
\& Embbedded help on optional switches | ||
\& | ||
\& zpaqfranz h main : main switches | ||
\& zpaqfranz h franz : zpaqfranz\*(Aqs switches | ||
\& zpaqfranz h normal : 2nd line switches | ||
\& zpaqfranz h voodoo : nerd things | ||
.Ve | ||
.SH "EXIT STATUS" | ||
.IX Header "EXIT STATUS" | ||
0=successfull, 1=warning, 2=error | ||
.SH "AVAILABILITY" | ||
.IX Header "AVAILABILITY" | ||
https://github.com/fcorbelli/zpaqfranz | ||
.SH "BUGS" | ||
.IX Header "BUGS" | ||
Compiling on \s-1BIG ENDIAND /\s0 \*(L"weird\*(R" CPUs requires the right switches or bad things can happen. Use the autotest command if necessary. | ||
.SH "LIMITATIONS" | ||
.IX Header "LIMITATIONS" | ||
zpaqfranz does not store owner/group of the file, symlinks or whatever. | ||
If you really need you must use tar. | ||
.SH "SEE ALSO" | ||
.IX Header "SEE ALSO" | ||
\&\f(CWbzip2(1)\fR | ||
\&\f(CWgzip(1)\fR | ||
\&\f(CWp7zip(1)\fR | ||
\&\f(CWrar(1)\fR | ||
\&\f(CWunzip(1)\fR | ||
\&\f(CWzip(1)\fR | ||
\&\f(CWzpaq(1)\fR | ||
.SH "AUTHORS" | ||
.IX Header "AUTHORS" | ||
This is a fork of zpaq 7.15 made by Franco Corbelli and released under \s-1MIT\s0 in 2021\-2022. | ||
.PP | ||
Licenses of various software (more details in the source code): | ||
\&\fIPublic domain\fR for zpaq, libzpaq, \s-1AES\s0 from libtomcrypt by Tom St Denis,salsa20 by D. J. Bernstein, mod by data man and reg2s patch from encode.su forum Sha1Opt.asm and 7zAsm.asm by Igor Pavlov; | ||
\&\fI\s-1MIT\s0\fR for Code from libdivsufsort 2.0 (C) Yuta Mori, 2003\-2008, Embedded Artistry, Nilsimsa implementation by Sepehr Laal; | ||
\&\fIzlib\fR for Crc32.h Copyright (c) 2011\-2019 Stephan Brumme, part of hash-library (\s-1MD5, SHA\-3\s0), crc32c.c Copyright (C) 2015 Mark Adler; | ||
\&\fIThe Unlicense\fR for wyhash (experimental) by WangYi; | ||
\&\fI\s-1BSD 2\s0\fR for xxHash Copyright (C) 2012\-2020 Yann Collet; | ||
\&\fI\s-1CC0 1.0 /\s0 Apache License 2.0\fR for the \s-1BLAKE3\s0 hasher; | ||
\&\fINothing explicit, seems \s-1BSD\s0\fR for Whirlpool by Paulo Barreto and Vincent Rijmen. | ||
.SH "EXAMPLE 1 create a temporary file, add /etc to mybackup.zpaq" | ||
.IX Header "EXAMPLE 1 create a temporary file, add /etc to mybackup.zpaq" | ||
.Vb 2 | ||
\& echo test_ONE >/etc/testfile.txt | ||
\& zpaqfranz a /tmp/mybackup.zpaq /etc | ||
.Ve | ||
.ie n .SH "EXAMPLE 2 create another version (""snapshot"") with different content" | ||
.el .SH "EXAMPLE 2 create another version (``snapshot'') with different content" | ||
.IX Header "EXAMPLE 2 create another version (snapshot) with different content" | ||
.Vb 2 | ||
\& echo test_TWO_FILE_LONGER_THAT_THE_FIRST >/etc/testfile.txt | ||
\& zpaqfranz a /tmp/mybackup.zpaq /etc | ||
.Ve | ||
.ie n .SH "EXAMPLE 3 show archive info (two versions/""snapshots"", 1 and 2)" | ||
.el .SH "EXAMPLE 3 show archive info (two versions/``snapshots'', 1 and 2)" | ||
.IX Header "EXAMPLE 3 show archive info (two versions/snapshots, 1 and 2)" | ||
.Vb 1 | ||
\& zpaqfranz i /tmp/mybackup.zpaq | ||
.Ve | ||
.SH "EXAMPLE 4 list the two different versions (look at different file size)" | ||
.IX Header "EXAMPLE 4 list the two different versions (look at different file size)" | ||
.Vb 2 | ||
\& zpaqfranz l /tmp/mybackup.zpaq \-find testfile.txt \-until 1 | ||
\& zpaqfranz l /tmp/mybackup.zpaq \-find testfile.txt \-until 2 | ||
.Ve | ||
.ie n .SH "EXAMPLE 5 restore the first version of /etc/testfile.txt (aka: rollback to ""snapshot"" #1)" | ||
.el .SH "EXAMPLE 5 restore the first version of /etc/testfile.txt (aka: rollback to ``snapshot'' #1)" | ||
.IX Header "EXAMPLE 5 restore the first version of /etc/testfile.txt (aka: rollback to snapshot #1)" | ||
.Vb 2 | ||
\& zpaqfranz x /tmp/mybackup.zpaq /etc/testfile.txt \-to /tmp/restoredfolder/the_first.txt \-until 1 \-space | ||
\& cat /tmp/restoredfolder/the_first.txt | ||
.Ve |