restore

2024-10-23

Understanding restore

The restore command is primarily used to extract data from backup files created using the tar utility (specifically, those using the -c or -f options with tar). While tar itself can extract archives, restore offers a more granular approach, allowing selective recovery of files and directories. Its capabilities extend beyond simple extraction; it handles tape devices and offers features for incremental backups, though these features are less common in modern workflows.

Basic Usage

The most basic form of restore involves simply specifying the backup file:

restore < backup.tar

This command extracts the entire contents of backup.tar to the current directory. Be cautious – this will overwrite existing files with the same names.

Selective Restoration

restore shines when you need to recover specific files or directories. Use the -i (interactive) option to browse the backup’s contents:

restore -i < backup.tar

This will present an interactive menu allowing you to select which files or directories to restore.

Alternatively, you can use the -r (restore) option followed by the path to the file or directory you wish to recover:

restore -r /path/to/file.txt < backup.tar

This restores only /path/to/file.txt from the archive. You can even specify multiple files or directories separated by spaces.

Restoring to a Different Directory

The -x (extract) option combined with -d (directory) lets you specify a target directory:

restore -x -d /path/to/destination/ < backup.tar

This extracts the entire archive to /path/to/destination/. This is important in avoiding accidental overwrites.

Dealing with Tape Devices

restore works seamlessly with tape devices. Simply replace the < backup.tar portion with the tape device name (e.g., /dev/st0):

restore -i /dev/st0

Remember to ensure the tape device is properly mounted and accessible.

Handling Multiple Archives

For scenarios with multiple archives representing incremental backups, the restore command, while technically capable, is less efficient than modern tools. Using more modern backup solutions like rsync, duplicity or specialized backup applications provides better management and recovery options for these scenarios.

Example: Restoring a Single File

Let’s say you have a backup archive mybackup.tar and you need to recover the file important_document.pdf located within the documents directory inside the archive. The command would look like this:

restore -r documents/important_document.pdf < mybackup.tar

This command restores only important_document.pdf from the documents directory to your current working directory.

Example: Restoring to a Specific Directory

To restore the entire archive mybackup.tar to a new directory /tmp/restored_data, use:

restore -x -d /tmp/restored_data < mybackup.tar

This will create the directory /tmp/restored_data (if it doesn’t exist) and extract the contents of mybackup.tar into it.

Remember to always test your restore procedures on a non-production environment before applying them to critical data. Furthermore, consider using more modern backup solutions for detailed and efficient backup and recovery strategies.