vac, unvac – create, extract a vac archive on Venti|
vac [ −mqsv ] [ −a vacfile ] [ −b blocksize ] [ −d oldvacfile
] [ −e exclude ] [ −f vacfile ] [ −i name ] [ −h host ] [ −x excludefile
] file ...
unvac [ −Tcdtv ] [ −h host ] vacfile [ file ... ]|
Vac creates an archival copy of Plan 9 file trees on Venti. It
can be used to build a simple backup system. One of the unusual
properties of Venti is that duplicate blocks are detected and
coalesced. When vac is used on a file tree that shares data with
an existing archive, the consumption of storage will be approximately
equal to an incremental backup.
This reduction in storage consumption occurs transparently to
As an optimization, the −d and −q options, described below, can
be used to explicitly create an archive relative to an existing
archive. These options do not change the resulting archive generated
by vac, but simply reduce the number of write operations to Venti.
The output of vac is the hexadecimal representation of the SHA1
fingerprint of the root of the archive, in this format:|
The options are:
Specifies that vac should create or update a backup archive, inserting
the files under an extra two levels of directory hierarchy named
yyyy/mmdd (year, month, day) in the style of the dump file system
(see Plan 9’s fs(4)). If vacfile already exists, an additional
backup day is added to the existing hierarchy, behaving as though
the −d flag was
specified giving the most recent backup tree in the archive. Typically,
this option is used as part of a nightly backup script. This option
cannot be used with −d or −f.|
Specifies the block size that data will be broken into. The units
for the size can be specified by appending k to indicate kilobytes.
The default is 8k. The size must be in the range of 512 bytes
Reduce the number of blocks written to Venti by comparing the
files to be stored with the contents of an existing vac file tree
whose score is stored in oldvacfile.|
Do not include the file or directory specified by exclude. This
option may be repeated multiple times. Exclude can be a shell
pattern as accepted by rc(1), with one extension: ... matches
any sequence of characters including slashes.|
The results of vac are placed in vacfile, or the standard output
if no file is given.|
Include standard input as one of the input files, storing it in
the archive with the specified name.|
−m Expand and merge any vac archives that are found while reading
the input files. This option is useful for building an archive
from a collection of existing archives. Each archive is inserted
into the new archive as if it had been unpacked in the directory
in which it was found. Multiple archives can be unpacked in a
single directory and the contents
The network address of the Venti server. The default is taken
from the environment variable venti.|
−q Increase the performance of the −a or −d options by detecting
unchanged files based on a match of the files name and other meta
data, rather than examining the contents of the files.
will be merged. To be detected, the archives must end in .vac.
Note, an archive is inserted by simply copying the root fingerprint
and does not require the archive to be unpacked.|
−s Print out various statistics on standard error.
−v Produce more verbose output on standard error, including the
name of the files added to the archive and the vac archives that
are expanded and merged.
Unvac lists or extracts files stored in the vac archive vacfile,
which can be either a vac archive string in the format given above
or the name of a file containing one. If file arguments are given,
only those files or directories will be extracted. The options
Read exclude patterns from the file excfile. Blank lines and lines
beginning with # are ignored. All other lines should be of the
form include pattern or exclude pattern . When considering whether
to include a directory or file in the vac archive, the earliest
matching pattern in the file applies. The patterns are the same
syntax accepted by the
−e option. This option may be repeated multiple times.
−T Set the modification time on extracted files to the time listed
in the archive.
−c Write extracted files to standard output instead of creating
−d Reduce the number of blocks read from Venti by comparing the
files to be stored with their counterparts in the file system.
This option cannot be used with −c.
−t Print a list of the files to standard output rather than extracting
−v If extracting files, print the name of each file and directory
to standard error. If listing files, print metadata in addition
to the names.