From 004aa293f360ea0f63ec50f5042f8c0fb2831e4f Mon Sep 17 00:00:00 2001 From: rsc Date: Wed, 13 Jul 2005 03:49:41 +0000 Subject: Dump-like file system backup for Unix, built on Venti. --- man/man1/hist.1 | 78 +++++++++++++++ man/man1/vbackup.1 | 263 +++++++++++++++++++++++++++++++++++++++++++++++++++ man/man1/yesterday.1 | 99 +++++++++++++++++++ 3 files changed, 440 insertions(+) create mode 100644 man/man1/hist.1 create mode 100644 man/man1/vbackup.1 create mode 100644 man/man1/yesterday.1 (limited to 'man') diff --git a/man/man1/hist.1 b/man/man1/hist.1 new file mode 100644 index 00000000..15e8df09 --- /dev/null +++ b/man/man1/hist.1 @@ -0,0 +1,78 @@ +.TH HIST 1 +.SH NAME +hist \- print file names from the dump +.SH SYNOPSIS +.B hist +[ +.B -vdu +] [ +.B -s +.I yyyymmdd +] +.I files ... +.SH DESCRIPTION +.I Hist +prints the names, dates, and sizes of all versions of the named +.IR files , +looking backwards in time, +stored in the dump file system. +If the file exists in the main tree, the first line of output will be its current state. +For example, +.IP +.EX +hist ~rsc/.bash_history +.EE +.PP +produces +.IP +.EX +.nf +May 19 16:11:37 EDT 2005 /home/am3/rsc/.bash_history 6175 +May 18 23:32:16 EDT 2005 /dump/am/2005/0519/home/am3/rsc/.bash_history 5156 +May 17 23:32:31 EDT 2005 /dump/am/2005/0518/home/am3/rsc/.bash_history 5075 +May 16 07:53:47 EDT 2005 /dump/am/2005/0517/home/am3/rsc/.bash_history 5065 +.fi +.EE +.PP +The +.B -v +option enables verbose debugging printout. +.PP +The +.B -d +option causes +.IR diff (1) +.B -c +to be run for each adjacent pair of dump files, while +.B -b +runs +.IR diff +.BR -cb . +.PP +The +.B -u +option causes times to be printed in GMT (UT) rather than local time. +.PP +Finally, the +.B -s +option +sets the starting (most recent) date for the output. +.SH EXAMPLES +.PP +Examine changes in block.c: +.IP +.EX +hist -d block.c +.EE +.SH FILES +.B /dump +.SH SOURCE +.B /home/am3/rsc/src/backup/cmd/history.c +.SH SEE ALSO +.IR yesterday (1) +.SH BUGS +Should be called +.IR history , +but +that name is taken by +.IR sh (1). diff --git a/man/man1/vbackup.1 b/man/man1/vbackup.1 new file mode 100644 index 00000000..72d93e73 --- /dev/null +++ b/man/man1/vbackup.1 @@ -0,0 +1,263 @@ +.TH VBACKUP 8 +.SH NAME +vbackup, vcat, vftp, vmount, vmount0, vnfs \- +back up Unix file systems to Venti +.SH SYNOPSIS +.B vbackup +[ +.B -DVnv +] +[ +.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 disk +| +.I score +.PP +.B vmount +[ +.B -v +] +.I addr +.I mtpt +.PP +.B vmount0 +[ +.B -v +] +[ +.B -h +.I handle +] +.I addr +.I mtpt +.PP +.B vnfs +[ +.B -LLMRVr +] +[ +.B -a +.I addr +] +[ +.B -m +.I mntaddr +] +[ +.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 +.IR 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 +.IR 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 +.TP +.B -V +.TP +.B -n +.TP +.B -v +.TP +.B -w \fIn +.TP +.B -s \fIsecs +.PP +.I Vcat +writes the named disk image to standard output. +Unused file system blocks are printed zeroed regardless +of their actual content. +.PP +If the +.B -z +flag is given, +.I vcat +will attempt to seek over unused blocks instead of writing to them. +The +.B -z +flag should only be used when standard output is seekable +.RI ( i.e. , +when it has been redirected to a file or disk). +.PP +.I Vftp +presents the +file system image named by +.I disk +or +.I score +in a shell-like +interactive session. +Type +.B help +at the +.B vftp> +prompt for details. +.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 . +.PP +.I Vmount0 +is a simple C program that +.I vmount +uses if +.IR mount (8) +does not suffice. +.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 +announces NFS service at +.IR addr +(default +.BR udp!*!nfs ) +and NFS mount service at +.IR mntaddr +(default +.BR udp!*!\fI999 ), +registering both with the port mapper. +If no port mapper is found running (on port 111), +.I vnfs +starts its own port mapper. +The options are: +.TP +.B -r +Reply to all NFS requests with RPC rejections. +.TP +.B -M +Do not announce an NFS mount service. +.TP +.B -P +Do not register service with the port mapper. +.TP +.B -a + + +.SH EXAMPLES +.PP +Back up the file system stored on +.BR /dev/da0s1a : +.IP +.EX +% vbackup /dev/da0s1a +ffs:0123456789abcdef0123456789abcdef01234567 +% +.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 /2005/0510 ffs:0123456789abcdef\fI...\fP +mount /2005/0510/home ffs:0123456789abcdef\fI...\fP +mount /2005/0510 ffs:0123456789abcdef\fI...\fP +mount /2005/0510/home ffs:0123456789abcdef\fI...\fP +hide /*/*/tmp +% vnfs -m -b 16k -c 1k config +% +.EE +.PP +Mount the backups on a client machine using +.IR vmount : +.IP +.EX +# vmount udp!yourserver!nfs /dump +# ls /dump +2005 +# +.EE +.PP +Mount the backups using the standard NFS mount program: +.IP +.EX +# mount -t nfs -o soft,intr,ro,nfsv3,rsize=8192,timeo=100 \ + -o nfsvers=3,nolock,noatime,nodev,nosuid \ +.EE diff --git a/man/man1/yesterday.1 b/man/man1/yesterday.1 new file mode 100644 index 00000000..b8a198ba --- /dev/null +++ b/man/man1/yesterday.1 @@ -0,0 +1,99 @@ +.TH YESTERDAY 1 +.SH NAME +yesterday \- print file names from the dump +.SH SYNOPSIS +.B yesterday +[ +.B -cCd +] [ +.B -n +.I daysago +] [ +.I \-date +] +.I files ... +.SH DESCRIPTION +.I Yesterday +prints the names of the +.I files +from the most recent dump. +Since dumps are done early in the morning, +yesterday's files are really in today's dump. +For example, if today is February 11, 2003, +.IP +.EX +yesterday /home/am3/rsc/.profile +.EE +.PP +prints +.IP +.EX +/dump/am/2003/0211/home/am3/rsc/.profile +.EE +.PP +In fact, the implementation is to select the most recent dump in +the current year, so the dump selected may not be from today. +.PP +By default, +.I yesterday +prints the names of the dump files corresponding to the named files. +The first set of options changes this behavior. +.TP +.B -c +Copy the dump files over the named files. +.TP +.B -C +Copy the dump files over the named files only when +they differ. +.TP +.B -d +Run +.B diff +to compare the dump files with the named files. +.PP +The +.I date +option selects other day's dumps, with a format of +1, 2, 4, 6, or 8 digits of the form +.IR d, +.IR dd , +.IR mmdd , +.IR yymmdd , +or +.IR yyyymmdd . +.PP +The +.B -n +option selects the dump +.I daysago +prior to the current day. +.PP +.I Yesterday +does not guarantee that the string it prints represents an existing file. +.SH EXAMPLES +.PP +See what's changed in the last week in your profile: +.IP +.EX +yesterday -d -n 7 ~/.profile +.EE +.PP +Restore your profile from yesterday: +.IP +.EX +yesterday -c ~/.profile +.EE +.SH FILES +.B /dump +.SH SOURCE +.B /usr/local/bin/yesterday +.SH SEE ALSO +.IR diff (1), +.IR hist (1) +.SH BUGS +Backups are only available on +.B amsterdam +and +.BR toil . +.PP +It's hard to use this command without singing. -- cgit v1.2.3