.TH VBACKUP 8
.SH NAME
vbackup, vcat, vftp, vmount, vnfs \- 
back up Unix file systems to Venti
.SH SYNOPSIS
.B vbackup
[
.B -DVnv
]
[
.B -s
.I secs
]
[
.B -w
.I n
]
.I disk
[
.I score
]
.PP
.B vcat
[
.B -z
]
.I disk
|
.I score
.B >
.I disk
.PP
.B vmount
[
.B -v
]
.I addr
.I mtpt
.PP
.B vnfs
[
.B -ELLRVr
]
[
.B -a
.I addr
]
[
.B -b
.I blocksize
]
[
.B -c
.I cachesize
]
.I config
.SH DESCRIPTION
These programs back up and restore standard
Unix file system images stored in
.IR venti (8).
Images stored in
.I venti
are named by
.IR scores ,
which consist of a file system type followed
by a colon and forty hexadecimal digits, as in:
.IP
.EX
ffs:0123456789abcdef0123456789abcdef01234567
.EE
.PP
(The hexadecimal data is the SHA1 hash of the Venti
root block representing the file system image.)
.PP
These programs expect the environment variable
.B $venti
to be set to the network address of the Venti server to use
(for example,
.B yourhost
or
.BR tcp!yourhost!venti ).
.PP
.I Vbackup
copies the file system stored on
.I disk
to the Venti server and prints the 
score for the newly-stored image.
The argument
.I disk
should be a disk or disk partition device
that would be appropriate to pass to
.IR mount (8).
.PP
The optional argument
.I score
is the score of a previous backup of the disk image.
If
.I score
is given, 
.I vbackup
will not write to Venti any blocks that have not changed
since the previous backup.
This is only a speed optimization: since the blocks are already
stored on Venti they need not be sent to the Venti server again.
.PP
The options to
.I vbackup
are:
.TP
.B -D
Turn on debugging output.
.TP
.B -V
Trace interactions with Venti server.
.TP
.B -m \fImntname
Set backup name:
this name is used in the printed
.B mount
command.
The default is the name returned by
.I sysname
(see
.IR getuser (3)).
.TP
.B -n
No-op mode: do not write any blocks to the server
.TP
.B -v
Print verbose output.
.TP
.B -w \fIn
Write parallelism: keep
.I n
writes to the server in progress at a time.
.TP
.B -s \fIsecs
Status interval: every
.I secs
seconds, print a line tracking progress of the backup.
.PD
.PP
When
.I vbackup
finishes, it prints a single line of the form
.IP
.EX
mount /\fImntname\fL/\fIyyyy\fL/\fImmdd\fL/\fImntpath\fL \fIscore\fL \fIyyyy\fL/\fImmdd\fL/\fIhhmm
.EE
.LP
This line is a valid configuration line for
.I vnfs
.RI ( q.v. ).
.I Mntpath
is the path on which
.I disk
is currently mounted.
.PP
.I Vcat
writes the named disk image to standard output.
Unused file system blocks are printed zeroed regardless
of their actual content.
.PP
By default,
.I vcat
will assume that its standard output is seekable
.RI ( i.e., 
it has been redirected to a file or disk)
and seek over unused blocks instead of writing to them.
The
.B -z
option causes
.I vcat
to zero unused blocks instead.
.PP
.I Vmount
mounts the NFS service at the network connection
.I address
onto
.IR mountpoint .
On most operating systems,
.I vmount
must be run by the user
.BR root .
.PP
.I Vnfs
serves, using the
NFS version 3 protocol,
one or more disk images in a synthetic tree defined
by the configuration file
.IR config .
.I Vnfs
serves both NFS mount protocol
and NFS protocol
RPCs at
.IR addr 
(default
.BR udp!*!nfs ).
The options are:
.TP
.B -E
Disable `encrypted' handles.
By default handles are encrypted with a random key to avoid
leaking information about the backed-up file systems.
If encryption is disabled, the NFS handles exposed to the client
may leak information about the root scores of the disks as well
as inode numbers.
.TP
.B -L
Local service only: serve only requests from the loopback interface (127.0.0.1).
.TP
.B -LL
Local service only, with paranoia: serve only requests from loopback,
and only from the first source port that sends a request.
This option is intended to be used to make sure that once the local
host has mounted the service, no other local users can access it.
.TP
.B -R
Print all NFS and NFS mount RPCs to standard error.
.TP
.B -V
Print all Venti transactions to standard error.
.TP
.BI -a " addr
Serve requests on
.IR addr
(see above).
.TP
.BI -b " blocksize
Set block size used by the in-memory venti block cache.
Must be as large as the maximum block size in any
file system mentioned in the configuration.
.TP
.BI -c " cachesize
Set the number of blocks stored by the in-memory venti cache.
.TP
.B -r
Respond to all requests with a Sun RPC rejection.
This is useful during debugging.
.PD
.PP
.I Config
is a text file describing the
backup hierarchy for 
.I vnfs
to serve.
Lines beginning with a sharp
.RB ( # )
are ignored.
The rest of the file is a sequence of commands, one per line.
The commands are:
.TP
.BI mount " mtpt score time
Add the file system with the given
.I score
to the tree at the mount point
.IR mtpt .
The path to the mount point will be created
if necessary.
If
.B /dev/null
is given as the score, an empty file system is mounted at
.IR mtpt ,
excluding
.IR mtpt 's
contents from view.
.I Time
is the modification time to return for the directory
.IR mtpt ,
either a decimal number of seconds since the epoch
or a string of the form
.IB yyyy / mmdd / hhmm
giving the year, month, day, hour, and minute.
.RI ( Vnfs
does not use the modification time of the root in order
to avoid accessing every mounted file system on common
actions like
.B ls
.B -l
.BR /dump/sys/2005 .)
.TP
.BI allow " ip\fR[\fL/\fImask\fR]
.TP
.BI deny " ip\fR[\fL/\fImask\fR]
These two commands define access permissions based on IP address.
The optional
.I mask
can be a decimal number (24) or an equivalent IP mask (255.255.255.0).
Each request is filtered through the rules listed in the configuration file.
The first rule that matches is used.
If any
.B allow
or
.B deny
rules are given, the default action is to reject the request.
In the absence of any rules, the default action is to accept all requests.
.PD
.SH EXAMPLES
.PP
Running on the server
.IR bob ,
back up the file system stored on
.BR /dev/da0s1a ,
which is mounted on
.BR /home :
.IP
.EX
% vbackup /dev/da0s1a
mount /bob/2005/0510/home ffs:0123456789abcdef\fI...\fP 2005/0510/0831
% 
.EE
.PP
Serve that backup and a few others in a tree reminiscent
of Plan 9's dump file system, but hide each day's contents of
.B /tmp :
.IP
.EX
% cat config
mount /bob/2005/0510 ffs:0123456789abcdef\fI...\fP 2005/0510/0829
mount /bob/2005/0510/home ffs:0123456789abcdef\fI...\fP 2005/0510/0831
mount /bob/2005/0510/tmp /dev/null 1
mount /bob/2005/0511 ffs:0123456789abcdef\fI...\fP 2005/0511/0827
mount /bob/2005/0511/home ffs:0123456789abcdef\fI...\fP 2005/0511/0828
mount /bob/2005/0511/tmp /dev/null 1
% vnfs -b 16k -c 1k config
% 
.EE
.PP
Mount the backups on a client machine using
.IR vmount :
.IP
.EX
# vmount udp!yourserver!nfs /dump
# ls /dump/bob/2005
0510
0511
# 
.EE
.PP
(Users of fancy shells may need to quote the address argument.)
