mirror of
https://github.com/9fans/plan9port.git
synced 2025-01-12 11:10:07 +00:00
d32deab17b
Suggested by G. Brandon Robinson.
404 lines
7.7 KiB
Groff
404 lines
7.7 KiB
Groff
.TH VBACKUP 8
|
|
.SH NAME
|
|
vbackup, vcat, vftp, vmount, vnfs \-
|
|
back up Unix file systems to Venti
|
|
.SH SYNOPSIS
|
|
.B vbackup
|
|
[
|
|
.B -DVinv
|
|
]
|
|
[
|
|
.B -M
|
|
.I mtpt
|
|
]
|
|
[
|
|
.B -m
|
|
.I host
|
|
]
|
|
[
|
|
.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 -ELLRVir
|
|
]
|
|
[
|
|
.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
|
|
.MR 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
|
|
.MR 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 \fIhost
|
|
.B -M \fImtpt
|
|
Set names used to construct the path in the
|
|
.B mount command.
|
|
The default
|
|
.I host
|
|
is the name returned by
|
|
.I sysname
|
|
(see
|
|
.MR getuser (3) ).
|
|
The default
|
|
.I mtpt
|
|
is the place where
|
|
.I disk
|
|
is currently mounted.
|
|
.TP
|
|
Set backup mount point:
|
|
this name is also used in the printed
|
|
.B mount
|
|
command.
|
|
The default is the name returned by
|
|
.I sysname
|
|
(see
|
|
.MR getuser (3) ).
|
|
.TP
|
|
.B -n
|
|
No-op mode: do not write any blocks to the server
|
|
.TP
|
|
.B -i
|
|
Read scores incrementally from the previous backup as needed,
|
|
rather than prefetching them.
|
|
.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 /\fIhost\fL/\fIyyyy\fL/\fImmdd\fL/\fImtpt\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
|
|
.MR 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 .
|
|
Because
|
|
.I address
|
|
is passed to the host OS kernel rather than interpreted by
|
|
.MR dial (3) ,
|
|
it must be only an IP address, not a full dial address.
|
|
.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 -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.)
|
|
.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
|
|
.PP
|
|
Reading the special file
|
|
.B /dump/+refreshconfig
|
|
causes
|
|
.I vnfs
|
|
to reload
|
|
.IR config .
|
|
The read returns either the string
|
|
.B ok
|
|
or an error message.
|
|
.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 yourserver /dump
|
|
# ls /dump/bob/2005
|
|
0510
|
|
0511
|
|
#
|
|
.EE
|
|
.PP
|
|
(Users of fancy shells may need to quote the address argument.)
|