VBACKUP(8)                                             VBACKUP(8)

     NAME
          vbackup, vcat, vftp, vmount, vnfs - back up Unix file
          systems to Venti

     SYNOPSIS
          vbackup [ -DVinv ] [ -M mtpt ] [ -m host ] [ -s secs ] [ -w
          n ] disk [ score ]

          vcat [ -z ] disk | score > disk

          vftp score | disk

          vmount [ -v ] addr mtpt

          vnfs [ -ELLRVir ] [ -a addr ] [ -b blocksize ] [ -c
          cachesize ] config

     DESCRIPTION
          These programs back up and restore standard Unix file system
          images stored in venti(8). Images stored in venti are named
          by scores, which consist of a file system type followed by a
          colon and forty hexadecimal digits, as in:

               ffs:0123456789abcdef0123456789abcdef01234567

          (The hexadecimal data is the SHA1 hash of the Venti root
          block representing the file system image.)

          These programs expect the environment variable $venti to be
          set to the network address of the Venti server to use (for
          example, yourhost or tcp!yourhost!venti).

          Vbackup copies the file system stored on disk to the Venti
          server and prints the score for the newly-stored image.  The
          argument disk should be a disk or disk partition device that
          would be appropriate to pass to mount(8).

          The optional argument score is the score of a previous
          backup of the disk image.  If score is given, 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.

          The options to vbackup are:

          -D   Turn on debugging output.

          -V   Trace interactions with Venti server.

     Page 1                       Plan 9             (printed 4/26/24)

     VBACKUP(8)                                             VBACKUP(8)

          -m host
               -M mtpt Set names used to construct the path in the
               mount command. The default host is the name returned by
               sysname (see getuser(3)). The default mtpt is the place
               where disk is currently mounted.

          Set backup mount point:
               this name is also used in the printed mount command.
               The default is the name returned by sysname (see
               getuser(3)).

          -n   No-op mode: do not write any blocks to the server

          -i   Read scores incrementally from the previous backup as
               needed, rather than prefetching them.

          -v   Print verbose output.

          -w n Write parallelism: keep n writes to the server in pro-
               gress at a time.

          -s secs
               Status interval: every secs seconds, print a line
               tracking progress of the backup.

          When vbackup finishes, it prints a single line of the form

               mount /host/yyyy/mmdd/mtpt score yyyy/mmdd/hhmm

          This line is a valid configuration line for vnfs (q.v.).
          Mntpath is the path on which disk is currently mounted.

          Vcat writes the named disk image to standard output.  Unused
          file system blocks are printed zeroed regardless of their
          actual content.

          By default, vcat will assume that its standard output is
          seekable (i.e., it has been redirected to a file or disk)
          and seek over unused blocks instead of writing to them.  The
          -z option causes vcat to zero unused blocks instead.

          Vftp presents an ftp(1)-like interface to a physical or
          backed-up disk image.  It is used mainly for debugging.
          Type help at the vftp> prompt for a list of commands.

          Vmount mounts the NFS service at the network connection
          address onto mountpoint. On most operating systems, vmount
          must be run by the user root.  Because address is passed to
          the host OS kernel rather than interpreted by dial(3), it
          must be only an IP address, not a full dial address.

          Vnfs serves, using the NFS version 3 protocol, one or more

     Page 2                       Plan 9             (printed 4/26/24)

     VBACKUP(8)                                             VBACKUP(8)

          disk images in a synthetic tree defined by the configuration
          file config. Vnfs serves both NFS mount protocol and NFS
          protocol RPCs at addr (default udp!*!nfs).  The options are:

          -E   Disable `encrypted' handles.  By default handles are
               encrypted with a random key to avoid leaking informa-
               tion 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.

          -L   Local service only: serve only requests from the loop-
               back interface (127.0.0.1).

          -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 ser-
               vice, no other local users can access it.

          -R   Print all NFS and NFS mount RPCs to standard error.

          -V   Print all Venti transactions to standard error.

          -a addr
               Serve requests on addr (see above).

          -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.

          -c cachesize
               Set the number of blocks stored by the in-memory venti
               cache.

          -i   Run in ``insecure'' mode, allowing remote root users to
               use uid and gid 0 and read any file.  (Normally, remote
               root is mapped to uid and gid -1 and has no special
               permissions.)

          -r   Respond to all requests with a Sun RPC rejection.  This
               is useful during debugging.

          Config is a text file describing the backup hierarchy for
          vnfs to serve.  Lines beginning with a sharp (#) are
          ignored.  The rest of the file is a sequence of commands,
          one per line.  The commands are:

          mount mtpt score time
               Add the file system with the given score to the tree at
               the mount point mtpt. The path to the mount point will

     Page 3                       Plan 9             (printed 4/26/24)

     VBACKUP(8)                                             VBACKUP(8)

               be created if necessary.  If /dev/null is given as the
               score, an empty file system is mounted at mtpt, exclud-
               ing mtpt's contents from view.  Time is the modifica-
               tion time to return for the directory mtpt, either a
               decimal number of seconds since the epoch or a string
               of the form yyyy/mmdd/hhmm giving the year, month, day,
               hour, and minute.  (Vnfs does not use the modification
               time of the root in order to avoid accessing every
               mounted file system on common actions like ls -l
               /dump/sys/2005.)

          allow ip[/mask]

          deny ip[/mask]
               These two commands define access permissions based on
               IP address.  The optional 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 allow or 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.

          Reading the special file /dump/+refreshconfig causes vnfs to
          reload config. The read returns either the string ok or an
          error message.

     EXAMPLES
          Running on the server bob, back up the file system stored on
          /dev/da0s1a, which is mounted on /home:

               % vbackup /dev/da0s1a
               mount /bob/2005/0510/home ffs:0123456789abcdef... 2005/0510/0831
               %

          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
          /tmp :

               % cat config
               mount /bob/2005/0510 ffs:0123456789abcdef... 2005/0510/0829
               mount /bob/2005/0510/home ffs:0123456789abcdef... 2005/0510/0831
               mount /bob/2005/0510/tmp /dev/null 1
               mount /bob/2005/0511 ffs:0123456789abcdef... 2005/0511/0827
               mount /bob/2005/0511/home ffs:0123456789abcdef... 2005/0511/0828
               mount /bob/2005/0511/tmp /dev/null 1
               % vnfs -b 16k -c 1k config
               %

          Mount the backups on a client machine using vmount:

     Page 4                       Plan 9             (printed 4/26/24)

     VBACKUP(8)                                             VBACKUP(8)

               # vmount udp!yourserver!nfs /dump
               # ls /dump/bob/2005
               0510
               0511
               #

          (Users of fancy shells may need to quote the address argu-
          ment.)

     Page 5                       Plan 9             (printed 4/26/24)