read, write, copy - simple Venti clients
venti/read [
-h host ] [
-t type ]
score
venti/write [
-z ] [
-h host ] [
-t
type ]
venti/copy [
-fimrVv ] [
-t type ]
srchost
dsthost score
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 output. If the
-h option is omitted,
read consults the environment 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 corresponding
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
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 information. The
-V option prints debugging
information about the Venti protocol messages send/received.
/src/cmd/venti
vac(1),
venti(3),
vacfs(4),
venti(7),
vbackup(8),
venti(8),
venti-fmt(8)
There should be programs to read and write venti files and directories.