.TH VAC 1
.SH NAME
vac, unvac \- create, extract a vac archive on Venti
.SH SYNOPSIS
.B vac
[
.B -mqsv
] [
.B -a
.I vacfile
] [
.B -b
.I blocksize
] [
.B -d
.I oldvacfile
] [
.B -e
.I exclude
] [
.B -f
.I vacfile
] [
.B -i
.I name
] [
.B -h
.I host
] [
.B -x
.I excludefile
]
.I file ...
.PP
.B unvac
[
.B -Tctv
] [
.B -h
.I host
]
.I vacfile
[
.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
The options are:
.TP
.BI -a " vacfile
Specifies that vac should create or update a backup archive, inserting
the files under an extra two levels of directory hierarchy named
.I yyyy/mmdd
(year, month, day)
in the style of the dump file system
(see Plan 9's \fIfs\fR(4)).
If
.I vacfile
already exists, an additional backup day is added to the
existing hierarchy, behaving as though the
.B -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
.B -d
or 
.BR -f .
.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.
.I Exclude
can be a shell pattern as accepted by
.IR rc (1),
with one extension: 
.B \&...
matches any sequence of characters including slashes.
.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 -a 
or
.B -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.
.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.
.TP
.BI -x " excfile
Read exclude patterns from the file 
.IR excfile .
Blank lines and lines beginning with 
.B #
are ignored.
All other lines should be of the form
.B include
.I pattern
or
.B exclude
.I 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
.B -e
option.
This option may be repeated multiple times.
.PP
.I Unvac
lists or extracts files stored in the vac archive
.IR vacfile ,
which can be either a vac archive string in the format
given above or the name of a file containing one.
If
.I file
arguments are given, only those files or directories
will be extracted.
The options are:
.TP
.B -T
Set the modification time on extracted files
to the time listed in the archive.
.TP
.B -c
Write extracted files to standard output instead of creating a file.
.TP
.B -t
Print a list of the files to standard output rather than extracting them.
.TP
.B -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.
.SH SOURCE
.B \*9/src/cmd/vac
.SH "SEE ALSO"
.IR vacfs (4),
.IR venti (8)
