Making backups with tar
Keywords: sag

Next: Restoring files with tar Up: Simple backups Previous: Simple backups

## Making backups with `tar`

A full backup can easily be made with `tar` :

> `# tar -create -file /dev/ftape /usr/src
> tar: Removing leading / from absolute path names in the archive
> #`

The example above uses the GNU version of `tar` and its long option names. The traditional version of `tar` only understands single character options. The GNU version can also handle backups that don't fit on one tape or floppy, and also very long paths; not all traditional versions can do these things. (Linux only uses GNU `tar` .)

If your backup doesn't fit on one tape, you need to use the `-multi-volume` (`-M`) option:

> `# tar -cMf /dev/fd0H1440 /usr/src
> tar: Removing leading / from absolute path names in the archive
> Prepare volume #2 for /dev/fd0H1440 and hit return:
> #`

Note that you should format the floppies before you begin the backup, or else use another window or virtual terminal and do it when `tar` asks for a new floppy.

After you've made a backup, you should check that it is OK, using the `-compare` (`-d`) option:

> `# tar -compare -verbose -f /dev/ftape
> usr/src/
> usr/src/linux
> usr/src/linux-1.2.10-includes/
> ....
> #`

Failing to check a backup means that you will not notice that your backups aren't working until after you've lost the original data.

An incremental backup can be done with `tar` using the `-newer` (`-N`) option:

> `# tar -create -newer '8 Sep 1995' -file /dev/ftape /usr/src -verbose
> tar: Removing leading / from absolute path names in the archive
> usr/src/
> usr/src/linux-1.2.10-includes/
> usr/src/linux-1.2.10-includes/include/
> usr/src/linux-1.2.10-includes/include/linux/
> usr/src/linux-1.2.10-includes/include/linux/modules/
> usr/src/linux-1.2.10-includes/include/asm-generic/
> usr/src/linux-1.2.10-includes/include/asm-i386/
> usr/src/linux-1.2.10-includes/include/asm-mips/
> usr/src/linux-1.2.10-includes/include/asm-alpha/
> usr/src/linux-1.2.10-includes/include/asm-m68k/
> usr/src/linux-1.2.10-includes/include/asm-sparc/
> usr/src/patch-1.2.11.gz
> #`

Unfortunately, `tar` can't notice when a file's inode information has changed, for example, that it's permission bits have been changed, or when its name has been changed. This can be worked around using `find` and comparing current filesystem state with lists of files that have been previously backed up. Scripts and programs for doing this can be found on Linux ftp sites.

Next: Restoring files with tar Up: Simple backups Previous: Simple backups