.TH VAC 1
.SH NAME
vac \- create a vac archive on Venti
.SH SYNOPSIS
.B vac
[
.B -mqsv
] [
.B -b
.I blocksize
] [
.B -d
.I oldvacfile
] [
.B -e
.I exclude
] [
.B -f
.I vacfile
] [
.B -i
.I name
] [
.B -h
.I host
]
.I file ...
.SH DESCRIPTION
.I 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
.I 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.
.PP
As an optimization, the 
.B -d
and
.B -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
.IR vac ,
but simply reduce the number of write operations to Venti.
.PP
The output of
.I vac
is the hexadecimal representation of the Sha1 fingerprint of the root of the archive, in this format:
.IP
.EX
vac:64daefaecc4df4b5cb48a368b361ef56012a4f46
.EE
.PP
Option to 
.I vac
are:
.TP
.BI -b " blocksize
Specifies the block size that data will be broken into.
The units for the size can be specified by appending
.L k
to indicate kilobytes.
The default is 8k.
The size must be in the range
of 512 bytes to 52k.
.TP
.BI -d " oldvacfile
Reduce the number of blocks written to Venti by comparing the files to be stored with
the contents of an existing
.I vac
file tree given by
.IR oldvacfile .
.TP
.BI -e " exclude
Do not include the file or directory specified by
.IR exclude .
This option may be repeated multiple times.
.TP
.BI -f " vacfile
The results of 
.I vac
are place in
.IR vacfile ,
or the standard output if no file is given.
.TP
.BI -i " name
Include standard input as one of the input files, storing it in the archive
with the specified
.IR name .
.TP
.BI -h " host
The network address of the Venti server.
The default is taken from the environment variable
.BR venti .
.\" If this variable does not exist, then the default is the
.\" metaname 
.\" .BR $venti ,
.\" which can be configured via
.\" .IR ndb (6).
.TP
.B -m
Expand and merge any
.I 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 will be merged.  To be detected, the
archives must end in
.LR .vac .
Note, an archive is inserted by simply copying the root fingerprint and does not require
the archive to be unpacked.
.TP
.B -q
Increase the performance of the
.B -d
option by detecting unchanged files based on a match of the files name and other meta data,
rather than examining the contents of the files.
.TP
.B -s
Print out various statistics on standard error.
.TP
.B -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.
.SH SOURCE
.B \*9/src/cmd/vac
.SH "SEE ALSO"
Plan 9's \fIvacfs\fR(4) and \fIventi\fR(8)
