|  | .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 vftp | 
|  | .I score | 
|  | | | 
|  | .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 Vftp | 
|  | presents an | 
|  | .IR ftp (1)-like | 
|  | interface to a physical or backed-up disk image. | 
|  | It is used mainly for debugging. | 
|  | Type | 
|  | .B help | 
|  | at the | 
|  | .B vftp> | 
|  | prompt for a list of commands. | 
|  | .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.) |