.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 -Tcdtv
] [
.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 -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
.BR -c .
.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)
