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