vac, unvac – create, extract a vac archive on Venti
vac [ –mqsv ] [ –b blocksize ] [ –d oldvacfile ] [ –e exclude ] [
–f vacfile ] [ –i name ] [ –h host ] file ...
unvac [ –Tctv ] [ –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 the user.
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:
–b blocksizeSpecifies 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 to 52k.
–d oldvacfileReduce 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.
–e exclude Do not include the file or directory specified by exclude. This option may be repeated multiple times.
–f vacfile The results of vac are placed in vacfile, or the standard output if no file is given.
–i name Include standard input as one of the input files, storing it in the archive with the specified name.
–h host The network address of the Venti server. The default is taken from the environment variable venti. If this variable does not exist, then the default is the metaname $venti, which can be configured via ndb(6).
–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
–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