]> git.wh0rd.org - dump.git/blame_incremental - dump/dump.8.in
Relicensed dump/restore under the revised BSD license, as per ftp://ftp.cs.berkeley...
[dump.git] / dump / dump.8.in
... / ...
CommitLineData
1.\" Copyright (c) 1980, 1991, 1993
2.\" Regents of the University of California.
3.\" All rights reserved.
4.\"
5.\" Redistribution and use in source and binary forms, with or without
6.\" modification, are permitted provided that the following conditions
7.\" are met:
8.\" 1. Redistributions of source code must retain the above copyright
9.\" notice, this list of conditions and the following disclaimer.
10.\" 2. Redistributions in binary form must reproduce the above copyright
11.\" notice, this list of conditions and the following disclaimer in the
12.\" documentation and/or other materials provided with the distribution.
13.\" 3. Neither the name of the University nor the names of its contributors
14.\" may be used to endorse or promote products derived from this software
15.\" without specific prior written permission.
16.\"
17.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
18.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
21.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
23.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
24.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
26.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27.\" SUCH DAMAGE.
28.\"
29.\" $Id: dump.8.in,v 1.51 2003/03/30 15:40:35 stelian Exp $
30.\"
31.TH DUMP 8 "version __VERSION__ of __DATE__" BSD "System management commands"
32.SH NAME
33dump \- ext2/3 filesystem backup
34.SH SYNOPSIS
35.B dump
36[\fB\-0123456789ackMnqSuv\fR]
37[\fB\-A \fIfile\fR]
38[\fB\-B \fIrecords\fR]
39[\fB\-b \fIblocksize\fR]
40[\fB\-d \fIdensity\fR]
41[\fB\-D \fIfile\fR]
42[\fB\-e \fIinode numbers\fR]
43[\fB\-E \fIfile\fR]
44[\fB\-f \fIfile\fR]
45[\fB\-F \fIscript\fR]
46[\fB\-h \fIlevel\fR]
47[\fB\-I \fInr errors\fR]
48[\fB\-j\fIcompression level\fR]
49[\fB\-L \fIlabel\fR]
50[\fB\-Q \fIfile\fR]
51[\fB\-s \fIfeet\fR]
52[\fB\-T \fIdate\fR]
53[\fB\-z\fIcompression level\fR]
54.I files-to-dump
55.PP
56.B dump
57[\fB\-W \fR| \fB\-w\fR]
58.PP
59(The 4.3BSD option syntax is implemented for backward compatibility but is not
60documented here.)
61.SH DESCRIPTION
62.B Dump
63examines files on an ext2/3 filesystem and determines which files need to be
64backed up. These files are copied to the given disk, tape or other storage
65medium for safe keeping (see the
66.B \-f
67option below for doing remote backups). A dump that is larger than the output
68medium is broken into multiple volumes. On most media the size is determined by
69writing until an end-of-media indication is returned.
70.PP
71On media that cannot reliably return an end-of-media indication (such as some
72cartridge tape drives), each volume is of a fixed size; the actual size is
73determined by specifying cartridge media, or via the tape size, density and/or
74block count options below. By default, the same output file name is used for
75each volume after prompting the operator to change media.
76.PP
77.I files-to-dump
78is either a mountpoint of a filesystem or a list of files and directories to be
79backed up as a subset of a filesystem. In the former case, either the path to a
80mounted filesystem or the device of an unmounted filesystem can be used. In the
81latter case, certain restrictions are placed on the backup:
82.B \-u
83is not allowed, the only dump level that is supported is
84.B 0
85and all the files and directories must reside on the same filesystem.
86.SH OPTIONS
87The following options are supported by
88.B dump:
89.TP
90.BI \-0\-9
91Dump levels. A level 0, full backup, guarantees the entire file system is
92copied (but see also the
93.B \-h
94option below). A level number above 0, incremental backup, tells
95.B dump
96to
97copy all files new or modified since the last dump of a lower level. The
98default level is 9.
99.TP
100.BI \-a
101\*(lqauto-size\*(rq. Bypass all tape length calculations, and write until an
102end-of-media indication is returned. This works best for most modern tape
103drives, and is the default. Use of this option is particularly recommended when
104appending to an existing tape, or using a tape drive with hardware compression
105(where you can never be sure about the compression ratio).
106.TP
107.BI \-A " archive_file"
108Archive a dump table-of-contents in the specified
109.I archive_file
110to be used by
111.BR restore (8)
112to determine whether a file is in the dump file that is being restored.
113.TP
114.BI \-b " blocksize"
115The number of kilobytes per dump record. The default blocksize is 10
116and the maximal value is 1024.
117Note however that, since the IO system slices all requests into chunks
118of
119.B MAXBSIZE
120(which can be as low as 64kB), you can experience problems with
121.BR dump (8)
122and
123.BR restore (8)
124when using a higher value, depending on your kernel and/or libC versions.
125.TP
126.BI \-B " records"
127The number of 1 kB blocks per volume. Not normally required, as
128.B dump
129can detect end-of-media. When the specified size is reached,
130.B dump
131waits for you to change the volume. This option overrides the calculation of
132tape size based on length and density. If compression is on this limits the
133size of the compressed output per volume.
134.TP
135.BI \-c
136Change the defaults for use with a cartridge tape drive, with a density of 8000
137bpi, and a length of 1700 feet. Specifying a cartridge drive overrides the
138end-of-media detection.
139.TP
140.BI \-d " density"
141Set tape density to
142.IR density .
143The default is 1600BPI. Specifying a tape density overrides the end-of-media
144detection.
145.TP
146.BI \-D " file"
147Set the path name of the file storing the information about the previous
148full and incremental dumps. The default location is
149.IR __DUMPDATES__ .
150.TP
151.BI \-e " inodes"
152Exclude
153.I inodes
154from the dump. The
155.I inodes
156parameter is a comma separated list of inode numbers (you can use
157.BR stat (1)
158to find the inode number for a file or directory).
159.TP
160.BI \-E " file"
161Read list of inodes to be excluded from the dump from the text file
162.IR file .
163The file
164.I file
165should be an ordinary file containing inode numbers separated by newlines.
166.TP
167.BI \-f " file"
168Write the backup to
169.IR file ;
170.I file
171may be a special device file like
172.I /dev/st0
173(a tape drive),
174.I /dev/rsd1c
175(a floppy disk drive), an ordinary file, or
176.I \-
177(the standard output). Multiple file names may be given as a single argument
178separated by commas. Each file will be used for one dump volume in the order
179listed; if the dump requires more volumes than the number of names given,
180the last file name will used for all remaining volumes after prompting for
181media changes. If the name of the file is of the form
182.I host:file
183or
184.I user@host:file
185.B dump
186writes to the named file on the remote host using
187.BR rmt (8).
188The default path name of the remote
189.BR rmt (8)
190program is
191.IR /etc/rmt ;
192this can be overridden by the environment variable
193.BR RMT .
194.TP
195.BI \-F " script"
196Run script at the end of each tape (except for the last one).
197The device name and the current volume number are passed on the
198command line. The script must return 0 if
199.B dump
200should continue without asking the user to change the tape, 1 if
201.B dump
202should continue but ask the user to change the tape. Any other exit code will
203cause
204.B dump
205to abort. For security reasons,
206.B dump
207reverts back to the real user ID and the real group ID before running the
208script.
209.TP
210.BI \-h " level"
211Honor the user
212.B nodump
213flag
214.B UF_NODUMP
215only for dumps at or above the given
216.IR level .
217The default honor level is 1, so that incremental backups omit such files but
218full backups retain them.
219.TP
220.BI \-I " nr errors"
221By default,
222.B dump
223will ignore the first 32 read errors on the file system before asking for
224operator intervention. You can change this using this flag to any value. This
225is useful when running
226.B dump
227on an active filesystem where read errors simply indicate an inconsistency
228between the mapping and dumping passes.
229.IP
230A value of 0 means that all read errors will be ignored.
231.TP
232.BI \-j "compression level"
233Compress every block to be written on the tape using bzlib library. This option
234will work only when dumping to a file or pipe or, when dumping to a tape drive,
235if the tape drive is capable of writing variable length blocks. You will need
236at least the 0.4b24 version of
237.B restore
238in order to extract compressed tapes. Tapes written using compression will not
239be compatible with the BSD tape format. The (optional) parameter specifies the
240compression level bzlib will use. The default compression level is 2. If the
241optional parameter is specified, there should be no white space between the
242option letter and the parameter.
243.TP
244.BI \-k
245Use Kerberos authentication to talk to remote tape servers. (Only available if
246this option was enabled when
247.B dump
248was compiled.)
249.TP
250.BI \-L " label"
251The user-supplied text string
252.I label
253is placed into the dump header, where tools like
254.BR restore (8)
255and
256.BR file (8)
257can access it. Note that this label is limited to be at most
258.B LBLSIZE
259(currently 16) characters, which must include the terminating \e0.
260.TP
261.BI \-m
262If this flag is specified,
263.B dump
264will optimise the output for inodes having been changed but not modified since
265the last dump ('changed' and 'modified' have the meaning defined in
266.BR stat (2)
267). For those inodes,
268.B dump
269will save only the metadata, instead of saving the entire inode contents.
270Inodes which are either directories or have been modified since the last dump
271are saved in a regular way. Uses of this flag must be consistent, meaning that
272either every dump in an incremental dump set have the flag, or no one has it.
273.IP
274Tapes written using such 'metadata only' inodes will not be compatible with the
275BSD tape format or older versions of
276.B restore.
277.TP
278.BI \-M
279Enable the multi-volume feature. The name specified with
280.B f
281is treated as a prefix and
282.B dump
283writes in sequence to
284.I <prefix>001, <prefix>002
285etc. This can be useful when dumping to files on an ext2 partition, in order to
286bypass the 2GB file size limitation.
287.TP
288.BI \-n
289Whenever
290.B dump
291requires operator attention, notify all operators in the group
292.B operator
293by means similar to a
294.BR wall (1).
295.TP
296.BI \-q
297Make
298.B dump
299abort immediately whenever operator attention is required, without prompting in
300case of write errors, tape changes etc.
301.TP
302.BI \-Q " file"
303Enable the Quick File Access support. Tape positions for each inode are stored
304into the file
305.I file
306which is used by
307.B restore
308(if called with parameter
309.B \-Q
310and the filename) to directly position the tape at the file
311.B restore
312is currently working on. This saves hours when restoring single files from
313large backups, saves the tapes and the drive's head.
314.IP
315It is recommended to set up the st driver to return logical tape positions
316rather than physical before calling
317.B dump/restore
318with parameter
319.BR \-Q .
320Since not all tape devices support physical tape positions those tape devices
321return an error during
322.B dump/restore
323when the st driver is set to the default physical setting. Please see the
324.BR st (4)
325man page, option
326.B MTSETDRVBUFFER
327, or the
328.BR mt (1)
329man page, on how to set the driver to return logical tape positions.
330.IP
331Before calling
332.B restore
333with parameter
334.BR \-Q ,
335always make sure the st driver is set to return the same type of tape position
336used during the call to
337.BR dump .
338Otherwise
339.B restore
340may be confused.
341.IP
342This option can be used when dumping to local tapes (see above) or to local
343files.
344.TP
345.BI \-s " feet"
346Attempt to calculate the amount of tape needed at a particular density. If this
347amount is exceeded,
348.B dump
349prompts for a new tape. It is recommended to be a bit conservative on this
350option. The default tape length is 2300 feet. Specifying the tape size
351overrides end-of-media detection.
352.TP
353.BI \-S
354Size estimate. Determine the amount of space that is needed to perform the dump
355without actually doing it, and display the estimated number of bytes it will
356take. This is useful with incremental dumps to determine how many volumes of
357media will be needed.
358.TP
359.BI \-T " date"
360Use the specified date as the starting time for the dump instead of the time
361determined from looking in
362.I __DUMPDATES__ .
363The format of
364.I date
365is the same as that of
366.BR ctime (3)
367followed by an rfc822 timezone specification: either a plus or minus sign
368followed by two digits for the number of hours and two digits for the minutes.
369For example, -0800 for eight hours west of Greenwich or +0230 for two hours
370and a half east of Greenwich. This timezone offset takes into account
371daylight savings time (if applicable to the timezone): UTC offsets
372when daylight savings time is in effect will be different than offsets
373when daylight savings time is not in effect. For backward
374compatibility, if no timezone is specified, a local time is assumed.
375This option is useful for automated dump scripts that wish to dump over a
376specific period of time. The
377.B \-T
378option is mutually exclusive from the
379.B \-u
380option.
381.TP
382.BI \-u
383Update the file
384.I __DUMPDATES__
385after a successful dump. The format of
386.I __DUMPDATES__
387is readable by people, consisting of one free format record per line:
388filesystem name, increment level and
389.BR ctime (3)
390format dump date followed by a rfc822 timezone specification (see the
391.B \-u
392option for details). If no timezone offset is specified, times are interpreted
393as local. Whenever the file is written, all dates in the file are converted
394to the local time zone, without changing the UTC times. There
395may be only one entry per filesystem at each level. The file
396.I __DUMPDATES__
397may be edited to change any of the fields, if necessary.
398.TP
399.BI \-v
400The
401.B \-v
402(verbose) makes
403.B dump
404to print extra information which could be helpful in debug sessions.
405.TP
406.BI \-W
407.B Dump
408tells the operator what file systems need to be dumped. This information is
409gleaned from the files
410.I __DUMPDATES__
411and
412.IR /etc/fstab .
413The
414.B \-W
415option causes
416.B dump
417to print out, for all file systems in
418.I __DUMPDATES__ ,
419and regognized file systems in
420.I /etc/mtab
421and
422.IR /etc/fstab .
423the most recent dump date and level, and highlights those that should be
424dumped. If the
425.B \-W
426option is set, all other options are ignored, and
427.B dump
428exits immediately.
429.TP
430.BI \-w
431Is like
432.BR \-W ,
433but prints only recognized filesystems in
434.I /etc/mtab
435and
436.I /etc/fstab
437which need to be dumped.
438.TP
439.BI \-z "compression level"
440Compress every block to be written on the tape using zlib library. This option
441will work only when dumping to a file or pipe or, when dumping to a tape drive,
442if the tape drive is capable of writing variable length blocks. You will need
443at least the 0.4b22 version of
444.B restore
445in order to extract compressed tapes. Tapes written using compression will not
446be compatible with the BSD tape format. The (optional) parameter specifies the
447compression level zlib will use. The default compression level is 2. If the
448optional parameter is specified, there should be no white space between the
449option letter and the parameter.
450.PP
451.B Dump
452requires operator intervention on these conditions: end of tape, end of dump,
453tape write error, tape open error or disk read error (if there is more than a
454threshold of nr errors). In addition to alerting all operators implied by the
455.B \-n
456key,
457.B dump
458interacts with the operator on dump's control terminal at times when
459.B dump
460can no longer proceed, or if something is grossly wrong. All questions
461.B dump
462poses
463.I must
464be answered by typing \*(lqyes\*(rq or \*(lqno\*(rq, appropriately.
465.PP
466Since making a dump involves a lot of time and effort for full dumps,
467.B dump
468checkpoints itself at the start of each tape volume. If writing that volume
469fails for some reason,
470.B dump
471will, with operator permission, restart itself from the checkpoint after the
472old tape has been rewound and removed, and a new tape has been mounted.
473.PP
474.B Dump
475tells the operator what is going on at periodic intervals, including usually
476low estimates of the number of blocks to write, the number of tapes it will
477take, the time to completion, and the time to the tape change. The output is
478verbose, so that others know that the terminal controlling
479.B dump
480is busy, and will be for some time.
481.PP
482In the event of a catastrophic disk event, the time required to restore all the
483necessary backup tapes or files to disk can be kept to a minimum by staggering
484the incremental dumps. An efficient method of staggering incremental dumps to
485minimize the number of tapes follows:
486.IP \(em
487Always start with a level 0 backup, for example:
488.RS 14
489.B /sbin/dump -0u -f /dev/st0 /usr/src
490.RE
491.IP
492This should be done at set intervals, say once a month or once every two months,
493and on a set of fresh tapes that is saved forever.
494.IP \(em
495After a level 0, dumps of active file systems are taken on a daily basis, using
496a modified Tower of Hanoi algorithm, with this sequence of dump levels:
497.RS 14
498.B 3 2 5 4 7 6 9 8 9 9 ...
499.RE
500.IP
501For the daily dumps, it should be possible to use a fixed number of tapes for
502each day, used on a weekly basis. Each week, a level 1 dump is taken, and the
503daily Hanoi sequence repeats beginning with 3. For weekly dumps, another fixed
504set of tapes per dumped file system is used, also on a cyclical basis.
505.PP
506After several months or so, the daily and weekly tapes should get rotated out
507of the dump cycle and fresh tapes brought in.
508.SH ENVIRONMENT
509.TP
510.B TAPE
511If no
512.B \-f
513option was specified,
514.B dump
515will use the device specified via
516.B TAPE
517as the dump device.
518.B TAPE
519may be of the form
520.IR tapename ,
521.IR host:tapename ,
522or
523.IR user@host:tapename .
524.TP
525.B RMT
526The environment variable
527.B RMT
528will be used to determine the pathname of the remote
529.BR rmt (8)
530program.
531.TP
532.B RSH
533.B Dump
534uses the contents of this variable to determine the name of the remote shell
535command to use when doing remote backups (rsh, ssh etc.). If this variable is
536not set,
537.BR rcmd (3)
538will be used, but only root will be able to do remote backups.
539.SH FILES
540.TP
541.I /dev/st0
542default tape unit to dump to
543.TP
544.I __DUMPDATES__
545dump date records
546.TP
547.I /etc/fstab
548dump table: file systems and frequency
549.TP
550.I /etc/mtab
551dump table: mounted file systems
552.TP
553.I /etc/group
554to find group
555.I operator
556.SH SEE ALSO
557.BR fstab (5),
558.BR restore (8),
559.BR rmt (8)
560.SH DIAGNOSTICS
561Many, and verbose.
562.SH COMPATIBILITY
563The format of the
564.I __DUMPDATES__
565file has changed in release 0.4b34, however, the file will be read
566correctly with either pre-0.4b34 or 0.4b34 and later versions of
567.B dump
568provided that the machine on which
569.B dump
570is run did not change timezones (which should be a fairly rare occurence).
571.SH EXIT STATUS
572.B Dump
573exits with zero status on success. Startup errors are indicated with an exit
574code of 1; abnormal termination is indicated with an exit code of 3.
575.SH BUGS
576It might be considered a bug that this version of dump can only handle ext2/3
577filesystems. Specifically, it does not work with FAT filesystems.
578.PP
579Fewer than 32 read errors (change this with
580.BR \-I )
581on the filesystem are ignored. If noticing read errors is important, the output
582from dump can be parsed to look for lines that contain the text 'read error'.
583.PP
584When a read error occurs,
585.B dump
586prints out the corresponding physical disk block and sector number and the
587ext2/3 logical block number. It doesn't print out the corresponing file name or
588even the inode number. The user has to use
589.BR debugfs (8),
590commands
591.B ncheck
592and
593.B icheck
594to translate the
595.B ext2blk
596number printed out by
597.B dump
598into an inode number, then into a file name.
599.PP
600Each reel requires a new process, so parent processes for reels already written
601just hang around until the entire tape is written.
602.PP
603The estimated number of tapes is not correct if compression is on.
604.PP
605It would be nice if
606.B dump
607knew about the dump sequence, kept track of the tapes scribbled on, told the
608operator which tape to mount when, and provided more assistance for the
609operator running
610.BR restore .
611.PP
612.B Dump
613cannot do remote backups without being run as root, due to its security history.
614Presently, it works if you set it setuid (like it used to be), but this might
615constitute a security risk. Note that you can set
616.B RSH
617to use a remote shell program instead.
618.SH AUTHOR
619The
620.B dump/restore
621backup suite was ported to Linux's Second Extended File System by Remy Card
622<card@Linux.EU.Org>. He maintained the initial versions of
623.B dump
624(up and including 0.4b4, released in january 1997).
625.PP
626Starting with 0.4b5, the new maintainer is Stelian Pop <stelian@popies.net>.
627.SH AVAILABILITY
628The
629.B dump/restore
630backup suite is available from <http://dump.sourceforge.net>
631.SH HISTORY
632A
633.B dump
634command appeared in
635.B Version 6 AT&T UNIX.