read, write, copy – simple Venti clients


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


Venti is a SHA1-addressed block storage server. See venti(6) 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.

The -f option causes copy to run in ‘fast’ mode, assuming that if a block already exists on the destination Venti server, all its children also exist and need not be checked.

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.




vac(1), venti(2), vacfs(4), venti(6), venti(8), venti-backup(8), venti-fmt(8)


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