VENTI(1)                                                 VENTI(1)

     NAME
          read, write, copy - simple Venti clients

     SYNOPSIS
          venti/read [ -h host ] [ -t type ] score
          venti/write [ -z ] [ -h host ] [ -t type ]
          venti/copy [ -fimrVv ] [ -t type ] srchost dsthost score

     DESCRIPTION
          Venti is a SHA1-addressed block storage server.  See
          venti(7) for a full introduction.

          Read reads a block with the given score and numeric type
          from the server host and prints the block to standard out-
          put.  If the -h option is omitted, read consults the envi-
          ronment variable $venti for the name of the Venti server.
          If the -t option is omitted, read will try each type, one at
          a time, until it finds one that works.  It prints the corre-
          sponding read -t command to standard error to indicate the
          type of the block.

          Write writes at most 56 kilobytes of data from standard
          input to the server host and prints the resulting score to
          standard output.  If the -t option is omitted, write uses
          type 0, denoting a data block.  If the -z option is given,
          write zero truncates the block before writing it to the
          server.

          Copy expects score to be the score of a VtRoot block.  It
          copies the entire tree of blocks reachable from the root
          block from the server srchost to the server dsthost.

          Venti's blocks are arranged in a directed acyclic graph (see
          venti(6)); there may be multiple paths from a root score to
          an interior block (for example, if the same file contents
          are stored under multiple names in an archive).  Copy runs
          more efficiently if it does not copy blocks (and all their
          children) multiple times.  The -f option causes copy to
          assume that if a block already exists on the destination
          Venti server, all its children also exist and need not be
          considered.  The -m option causes copy to maintain an in-
          memory list of blocks it has copied and avoid considering
          the same block multiple times.  The -f option is only useful
          if the destination Venti server is known not to have lost
          any blocks due to disk corruption or other failures.  The -m
          option is only useful if enough memory is available to hold
          the block list, which typically requires about 1% of the
          total number of bytes being copied.

          The -i and -r options control copy's reaction to errors

     VENTI(1)                                                 VENTI(1)

          reading from srchost. Copy always prints information to
          standard error about each read error.  By default, copy
          exits after printing the first error.  If the -i option is
          given, read errors are ignored.  This is dangerous behavior
          because it breaks the assumption made by `fast' mode.  If
          the -r option is given, copy replaces pointers to unreadable
          blocks with pointers to the zero block.  It writes the new
          root score to standard output.  The -v option prints scores
          as it copies them, total writes, and other debugging infor-
          mation.  The -V option prints debugging information about
          the Venti protocol messages send/received.

     SOURCE
          /src/cmd/venti

     SEE ALSO
          vac(1), venti(3), vacfs(4), venti(7), vbackup(8), venti(8),
          venti-fmt(8)

     BUGS
          There should be programs to read and write venti files and
          directories.