Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/bareos/bareos-docs.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'manuals/en/main/restore.tex')
-rw-r--r--manuals/en/main/restore.tex994
1 files changed, 0 insertions, 994 deletions
diff --git a/manuals/en/main/restore.tex b/manuals/en/main/restore.tex
deleted file mode 100644
index d6cf8e2..0000000
--- a/manuals/en/main/restore.tex
+++ /dev/null
@@ -1,994 +0,0 @@
-%%
-%%
-\chapter{The Restore Command}
-\label{RestoreChapter}
-\index[general]{Restore}
-
-\section{General}
-
-Below, we will discuss restoring files with the Console {\bf restore} command,
-which is the recommended way of doing restoring files. It is not possible
-to restore files by automatically starting a job as you do with Backup,
-Verify, ... jobs. However, in addition to the console restore command,
-there is a standalone program named {\bf bextract}, which also permits
-restoring files. For more information on this program, please see the
-\ilink{Bareos Utility Programs}{bextract} chapter of this manual. We
-don't particularly recommend the {\bf bextract} program because it
-lacks many of the features of the normal Bareos restore, such as the
-ability to restore Win32 files to Unix systems, and the ability to
-restore access control lists (ACL). As a consequence, we recommend,
-wherever possible to use Bareos itself for restores as described below.
-
-You may also want to look at the {\bf bls} program in the same chapter,
-which allows you to list the contents of your Volumes. Finally, if you
-have an old Volume that is no longer in the catalog, you can restore the
-catalog entries using the program named {\bf bscan}, documented in the same
-\ilink{Bareos Utility Programs}{bscan} chapter.
-
-In general, to restore a file or a set of files, you must run a {\bf restore}
-job. That is a job with {\bf Type = Restore}. As a consequence, you will need
-a predefined {\bf restore} job in your {\bf bareos-dir.conf} (Director's
-config) file. The exact parameters (Client, FileSet, ...) that you define are
-not important as you can either modify them manually before running the job or
-if you use the {\bf restore} command, explained below, Bareos will
-automatically set them for you. In fact, you can no longer simply run a restore
-job. You must use the restore command.
-
-Since Bareos is a network backup program, you must be aware that when you
-restore files, it is up to you to ensure that you or Bareos have selected the
-correct Client and the correct hard disk location for restoring those files.
-{\bf Bareos} will quite willingly backup client A, and restore it by sending
-the files to a different directory on client B. Normally, you will want to
-avoid this, but assuming the operating systems are not too different in their
-file structures, this should work perfectly well, if so desired.
-By default, Bareos will restore data to the same Client that was backed
-up, and those data will be restored not to the original places but to
-{\bf /tmp/bareos-restores}. This is configured in the default restore
-command resource in bareos-dir.conf. You may modify any of these defaults when the
-restore command prompts you to run the job by selecting the {\bf mod}
-option.
-
-\section{The Restore Command}
-\index[general]{Console!Command!restore}
-
-Since Bareos maintains a catalog of your files and on which Volumes (disk or
-tape), they are stored, it can do most of the bookkeeping work, allowing you
-simply to specify what kind of restore you want (current, before a particular
-date), and what files to restore. Bareos will then do the rest.
-
-This is accomplished using the {\bf restore} command in the Console. First you
-select the kind of restore you want, then the JobIds are selected,
-the File records for those Jobs are placed in an internal Bareos directory
-tree, and the restore enters a file selection mode that allows you to
-interactively walk up and down the file tree selecting individual files to be
-restored. This mode is somewhat similar to the standard Unix {\bf restore}
-program's interactive file selection mode.
-
-If a Job's file records have been pruned from the catalog, the {\bf restore}
-command will be unable to find any files to restore. Bareos will ask if you
-want to restore all of them or if you want to use a regular expression to
-restore only a selection while reading media.
-See \ilink{FileRegex option}{FileRegex} and below for more details on this.
-
-Within the Console program, after entering the {\bf restore} command, you are
-presented with the following selection prompt:
-
-\begin{bconsole}{restore}
-* <input>restore</input>
-First you select one or more JobIds that contain files
-to be restored. You will be presented several methods
-of specifying the JobIds. Then you will be allowed to
-select which files from those JobIds are to be restored.
-
-To select the JobIds, you have the following choices:
- 1: List last 20 Jobs run
- 2: List Jobs where a given File is saved
- 3: Enter list of comma separated JobIds to select
- 4: Enter SQL list command
- 5: Select the most recent backup for a client
- 6: Select backup for a client before a specified time
- 7: Enter a list of files to restore
- 8: Enter a list of files to restore before a specified time
- 9: Find the JobIds of the most recent backup for a client
- 10: Find the JobIds for a backup for a client before a specified time
- 11: Enter a list of directories to restore for found JobIds
- 12: Select full restore to a specified Job date
- 13: Cancel
-Select item: (1-13):
-\end{bconsole}
-
-There are a lot of options, and as a point of reference, most people will
-want to select item 5 (the most recent backup for a client). The details
-of the above options are:
-
-\begin{itemize}
-\item Item 1 will list the last 20 jobs run. If you find the Job you want,
- you can then select item 3 and enter its JobId(s).
-
-\item Item 2 will list all the Jobs where a specified file is saved. If you
- find the Job you want, you can then select item 3 and enter the JobId.
-
-\item Item 3 allows you the enter a list of comma separated JobIds whose
- files will be put into the directory tree. You may then select which
- files from those JobIds to restore. Normally, you would use this option
- if you have a particular version of a file that you want to restore and
- you know its JobId. The most common options (5 and 6) will not select
- a job that did not terminate normally, so if you know a file is
- backed up by a Job that failed (possibly because of a system crash), you
- can access it through this option by specifying the JobId.
-
-\item Item 4 allows you to enter any arbitrary SQL command. This is
- probably the most primitive way of finding the desired JobIds, but at
- the same time, the most flexible. Once you have found the JobId(s), you
- can select item 3 and enter them.
-
-\item Item 5 will automatically select the most recent Full backup and all
- subsequent incremental and differential backups for a specified Client.
- These are the Jobs and Files which, if reloaded, will restore your
- system to the most current saved state. It automatically enters the
- JobIds found into the directory tree in an optimal way such that only
- the most recent copy of any particular file found in the set of Jobs
- will be restored. This is probably the most convenient of all the above
- options to use if you wish to restore a selected Client to its most
- recent state.
-
- There are two important things to note. First, this automatic selection
- will never select a job that failed (terminated with an error status).
- If you have such a job and want to recover one or more files from it,
- you will need to explicitly enter the JobId in item 3, then choose the
- files to restore.
-
- If some of the Jobs that are needed to do the restore have had their
- File records pruned, the restore will be incomplete. Bareos currently
- does not correctly detect this condition. You can however, check for
- this by looking carefully at the list of Jobs that Bareos selects and
- prints. If you find Jobs with the JobFiles column set to zero, when
- files should have been backed up, then you should expect problems.
-
- If all the File records have been pruned, Bareos will realize that there
- are no file records in any of the JobIds chosen and will inform you. It
- will then propose doing a full restore (non-selective) of those JobIds.
- This is possible because Bareos still knows where the beginning of the
- Job data is on the Volumes, even if it does not know where particular
- files are located or what their names are.
-
-\item Item 6 allows you to specify a date and time, after which Bareos will
- automatically select the most recent Full backup and all subsequent
- incremental and differential backups that started before the specified date
- and time.
-
-\item Item 7 allows you to specify one or more filenames (complete path
- required) to be restored. Each filename is entered one at a time or if you
- prefix a filename with the less-than symbol ({\textless}) Bareos will read that
- file and assume it is a list of filenames to be restored. If you
- prefix the filename with a question mark (?), then the filename will
- be interpreted as an SQL table name, and Bareos will include the rows
- of that table in the list to be restored. The table must contain the
- JobId in the first column and the FileIndex in the second column.
- This table feature is intended for external programs that want to build
- their own list of files to be restored.
- The filename entry mode is terminated by entering a blank line.
-
-\item Item 8 allows you to specify a date and time before entering the
- filenames. See Item 7 above for more details.
-
-\item Item 9 allows you find the JobIds of the most recent backup for
- a client. This is much like option 5 (it uses the same code), but
- those JobIds are retained internally as if you had entered them
- manually. You may then select item 11 (see below) to restore one
- or more directories.
-
-\item Item 10 is the same as item 9, except that it allows you to enter
- a before date (as with item 6). These JobIds will then be retained
- internally.
-
-\index[general]{Restore Directories}
-\item Item 11 allows you to enter a list of JobIds from which you can
- select directories to be restored. The list of JobIds can have been
- previously created by using either item 9 or 10 on the menu. You
- may then enter a full path to a directory name or a filename preceded
- by a less than sign ({\textless}). The filename should contain a list
- of directories to be restored. All files in those directories will
- be restored, but if the directory contains subdirectories, nothing
- will be restored in the subdirectory unless you explicitly enter its
- name.
-
-\item Item 12 is a full restore to a specified job date.
-
-\item Item 13 allows you to cancel the restore command.
-\end{itemize}
-
-As an example, suppose that we select item 5 (restore to most recent state).
-If you have not specified a client=xxx on the command line, it
-it will then ask for the desired Client, which on my system, will print all
-the Clients found in the database as follows:
-
-\begin{bconsole}{restore: select client}
-Select item: (1-13): <input>5</input>
-Defined clients:
- 1: Rufus
- 2: Matou
- 3: Polymatou
- 4: Minimatou
- 5: Minou
- 6: MatouVerify
- 7: PmatouVerify
- 8: RufusVerify
- 9: Watchdog
-Select Client (File daemon) resource (1-9): <input>1</input>
-\end{bconsole}
-
-The listed clients are only examples, yours will look differently.
-If you have only one Client, it will be automatically selected.
-In this example, I enter 1 for
-{\bf Rufus} to select the Client.
-Then Bareos needs to know what FileSet is
-to be restored, so it prompts with:
-
-\footnotesize
-\begin{verbatim}
-The defined FileSet resources are:
- 1: Full Set
- 2: Other Files
-Select FileSet resource (1-2):
-\end{verbatim}
-\normalsize
-
-If you have only one FileSet defined for the Client, it will be selected
-automatically. I choose item 1, which is my full backup. Normally, you
-will only have a single FileSet for each Job, and if your machines are
-similar (all Linux) you may only have one FileSet for all your Clients.
-
-At this point, Bareos has all the information it needs to find the most
-recent set of backups. It will then query the database, which may take a bit
-of time, and it will come up with something like the following. Note, some of
-the columns are truncated here for presentation:
-
-\footnotesize
-\begin{verbatim}
-+-------+------+----------+-------------+-------------+------+-------+------------+
-| JobId | Levl | JobFiles | StartTime | VolumeName | File | SesId |VolSesTime |
-+-------+------+----------+-------------+-------------+------+-------+------------+
-| 1,792 | F | 128,374 | 08-03 01:58 | DLT-19Jul02 | 67 | 18 | 1028042998 |
-| 1,792 | F | 128,374 | 08-03 01:58 | DLT-04Aug02 | 0 | 18 | 1028042998 |
-| 1,797 | I | 254 | 08-04 13:53 | DLT-04Aug02 | 5 | 23 | 1028042998 |
-| 1,798 | I | 15 | 08-05 01:05 | DLT-04Aug02 | 6 | 24 | 1028042998 |
-+-------+------+----------+-------------+-------------+------+-------+------------+
-You have selected the following JobId: 1792,1792,1797
-Building directory tree for JobId 1792 ...
-Building directory tree for JobId 1797 ...
-Building directory tree for JobId 1798 ...
-cwd is: /
-$
-\end{verbatim}
-\normalsize
-
-Depending on the number of {\bf JobFiles} for each JobId,
-the \bquote{\bconsoleOutput{Building directory tree ...}} can take a bit of time.
-If you notice ath all the
-JobFiles are zero, your Files have probably been pruned and you will not be
-able to select any individual files -- it will be restore everything or
-nothing.
-
-In our example, Bareos found four Jobs that comprise the most recent backup of
-the specified Client and FileSet. Two of the Jobs have the same JobId because
-that Job wrote on two different Volumes. The third Job was an incremental
-backup to the previous Full backup, and it only saved 254 Files compared to
-128,374 for the Full backup. The fourth Job was also an incremental backup
-that saved 15 files.
-
-Next Bareos entered those Jobs into the directory tree, with no files marked
-to be restored as a default, tells you how many files are in the tree, and
-tells you that the current working directory ({\bf cwd}) is /. Finally, Bareos
-prompts with the dollar sign (\$) to indicate that you may enter commands to
-move around the directory tree and to select files.
-
-If you want all the files to automatically be marked when the directory
-tree is built, you could have entered the command {\bf restore all}, or
-at the \$ prompt, you can simply enter {\bf mark *}.
-
-Instead of choosing item 5 on the first menu (Select the most recent backup
-for a client), if we had chosen item 3 (Enter list of JobIds to select) and we
-had entered the JobIds {\bf 1792,1797,1798} we would have arrived at the same
-point.
-
-One point to note, if you are manually entering JobIds, is that you must enter
-them in the order they were run (generally in increasing JobId order). If you
-enter them out of order and the same file was saved in two or more of the
-Jobs, you may end up with an old version of that file (i.e. not the most
-recent).
-
-Directly entering the JobIds can also permit you to recover data from
-a Job that wrote files to tape but that terminated with an error status.
-
-While in file selection mode, you can enter {\bf help} or a question mark (?)
-to produce a summary of the available commands:
-
-\footnotesize
-\begin{verbatim}
- Command Description
- ======= ===========
- cd change current directory
- count count marked files in and below the cd
- dir long list current directory, wildcards allowed
- done leave file selection mode
- estimate estimate restore size
- exit same as done command
- find find files, wildcards allowed
- help print help
- ls list current directory, wildcards allowed
- lsmark list the marked files in and below the cd
- mark mark dir/file to be restored recursively in dirs
- markdir mark directory name to be restored (no files)
- pwd print current working directory
- unmark unmark dir/file to be restored recursively in dir
- unmarkdir unmark directory name only no recursion
- quit quit and do not do restore
- ? print help
-\end{verbatim}
-\normalsize
-
-As a default no files have been selected for restore (unless you
-added {\bf all} to the command line. If you want to restore
-everything, at this point, you should enter {\bf mark *}, and then {\bf done}
-and Bareos will write the bootstrap records to a file and request your
-approval to start a restore job.
-
-If you do not enter the above mentioned {\bf mark *} command, you will start
-with an empty state. Now you can simply start looking at the tree and {\bf
-mark} particular files or directories you want restored. It is easy to make
-a mistake in specifying a file to mark or unmark, and Bareos's error handling
-is not perfect, so please check your work by using the {\bf ls} or {\bf dir}
-commands to see what files are actually selected. Any selected file has its
-name preceded by an asterisk.
-
-To check what is marked or not marked, enter the {\bf count} command, which
-displays:
-
-\footnotesize
-\begin{verbatim}
-128401 total files. 128401 marked to be restored.
-
-\end{verbatim}
-\normalsize
-
-Each of the above commands will be described in more detail in the next
-section. We continue with the above example, having accepted to restore all
-files as Bareos set by default. On entering the {\bf done} command, Bareos
-prints:
-
-\footnotesize
-\begin{verbatim}
-Run Restore job
-JobName: RestoreFiles
-Bootstrap: /var/lib/bareos/client1.restore.3.bsr
-Where: /tmp/bareos-restores
-Replace: Always
-FileSet: Full Set
-Backup Client: client1
-Restore Client: client1
-Format: Native
-Storage: File
-When: 2013-06-28 13:30:08
-Catalog: MyCatalog
-Priority: 10
-Plugin Options: *None*
-OK to run? (yes/mod/no):
-\end{verbatim}
-\normalsize
-
-Please examine each of the items very carefully to make sure that they are
-correct. In particular, look at {\bf Where}, which tells you where in the
-directory structure the files will be restored, and {\bf Client}, which
-tells you which client will receive the files. Note that by default the
-Client which will receive the files is the Client that was backed up.
-These items will not always be completed with the correct values depending
-on which of the restore options you chose. You can change any of these
-default items by entering {\bf mod} and responding to the prompts.
-
-The above assumes that you have defined a {\bf Restore} Job resource in your
-Director's configuration file. Normally, you will only need one Restore Job
-resource definition because by its nature, restoring is a manual operation,
-and using the Console interface, you will be able to modify the Restore Job to
-do what you want.
-
-An example Restore Job resource definition is given below.
-
-Returning to the above example, you should verify that the Client name is
-correct before running the Job. However, you may want to modify some of the
-parameters of the restore job. For example, in addition to checking the Client
-it is wise to check that the Storage device chosen by Bareos is indeed
-correct. Although the {\bf FileSet} is shown, it will be ignored in restore.
-The restore will choose the files to be restored either by reading the {\bf
-Bootstrap} file, or if not specified, it will restore all files associated
-with the specified backup {\bf JobId} (i.e. the JobId of the Job that
-originally backed up the files).
-
-Finally before running the job, please note that the default location for
-restoring files is {\bf not} their original locations, but rather the directory
-{\bf /tmp/bareos-restores}. You can change this default by modifying your {\bf
-bareos-dir.conf} file, or you can modify it using the {\bf mod} option. If you
-want to restore the files to their original location, you must have {\bf
-Where} set to nothing or to the root, i.e. {\bf /}.
-
-If you now enter {\bf yes}, Bareos will run the restore Job.
-
-
-\section{Selecting Files by Filename}
-\index[general]{Restore!by filename}
-
-
-If you have a small number of files to restore, and you know the filenames,
-you can either put the list of filenames in a file to be read by Bareos, or
-you can enter the names one at a time. The filenames must include the full
-path and filename. No wild cards are used.
-
-To enter the files, after the {\bf restore}, you select item number 7 from the
-prompt list:
-
-\begin{bconsole}{restore list of files}
-* <input>restore</input>
-First you select one or more JobIds that contain files
-to be restored. You will be presented several methods
-of specifying the JobIds. Then you will be allowed to
-select which files from those JobIds are to be restored.
-
-To select the JobIds, you have the following choices:
- 1: List last 20 Jobs run
- 2: List Jobs where a given File is saved
- 3: Enter list of comma separated JobIds to select
- 4: Enter SQL list command
- 5: Select the most recent backup for a client
- 6: Select backup for a client before a specified time
- 7: Enter a list of files to restore
- 8: Enter a list of files to restore before a specified time
- 9: Find the JobIds of the most recent backup for a client
- 10: Find the JobIds for a backup for a client before a specified time
- 11: Enter a list of directories to restore for found JobIds
- 12: Select full restore to a specified Job date
- 13: Cancel
-Select item: (1-13): <input>7</input>
-\end{bconsole}
-
-
-which then prompts you for the client name:
-
-\footnotesize
-\begin{verbatim}
-Defined Clients:
- 1: client1
- 2: Tibs
- 3: Rufus
-Select the Client (1-3): 3
-\end{verbatim}
-\normalsize
-
-Of course, your client list will be different, and if you have only one
-client, it will be automatically selected. And finally, Bareos requests you to
-enter a filename:
-
-\footnotesize
-\begin{verbatim}
-Enter filename:
-\end{verbatim}
-\normalsize
-
-At this point, you can enter the full path and filename
-
-\footnotesize
-\begin{verbatim}
-Enter filename: /etc/resolv.conf
-Enter filename:
-\end{verbatim}
-\normalsize
-
-as you can see, it took the filename. If Bareos cannot find a copy of the
-file, it prints the following:
-
-\footnotesize
-\begin{verbatim}
-Enter filename: junk filename
-No database record found for: junk filename
-Enter filename:
-\end{verbatim}
-\normalsize
-
-If you want Bareos to read the filenames from a file, you simply precede the
-filename with a less-than symbol ({\textless}).
-
-It is possible to automate the selection by file by putting your list of files
-in say {\bf /tmp/file-list}, then using the following command:
-
-\footnotesize
-\begin{verbatim}
-restore client=client1 file=</tmp/file-list
-\end{verbatim}
-\normalsize
-
-If in modifying the parameters for the Run Restore job, you find that Bareos
-asks you to enter a Job number, this is because you have not yet specified
-either a Job number or a Bootstrap file. Simply entering zero will allow you
-to continue and to select another option to be modified.
-
-\label{Replace}
-
-\section{Replace Options}
-
-When restoring, you have the option to specify a Replace option. This
-directive determines the action to be taken when restoring a file or
-directory that already exists. This directive can be set by selecting
-the {\bf mod} option. You will be given a list of parameters to choose
-from. Full details on this option can be found in the Job Resource section
-of the Director documentation.
-
-
-\section{Command Line Arguments}
-\label{CommandArguments}
-
-If all the above sounds complicated, you will probably agree that it really
-isn't after trying it a few times. It is possible to do everything that was
-shown above, with the exception of selecting the FileSet, by using command
-line arguments with a single command by entering:
-
-\footnotesize
-\begin{verbatim}
-restore client=Rufus select current all done yes
-\end{verbatim}
-\normalsize
-
-The {\bf client=Rufus} specification will automatically select Rufus as the
-client, the {\bf current} tells Bareos that you want to restore the system to
-the most current state possible, and the {\bf yes} suppresses the final {\bf
-yes/mod/no} prompt and simply runs the restore.
-
-The full list of possible command line arguments are:
-
-\begin{itemize}
-\item {\bf all} -- select all Files to be restored.
-\item {\bf select} -- use the tree selection method.
-\item {\bf done} -- do not prompt the user in tree mode.
-\item {\bf copies} -- instead of using the actual backup jobs for restoring
- use the copies which were made of these backup Jobs. This could mean that
- on restore the client will contact a remote storage daemon if the data is
- copied to a remote storage daemon as part of your copy Job scheme.
-\item {\bf current} -- automatically select the most current set of backups
- for the specified client.
-\item {\bf client=xxxx} -- initially specifies the client from which the
- backup was made and the client to which the restore will be make. See also
- "restoreclient" keyword.
-\item {\bf restoreclient=xxxx} -- if the keyword is specified, then the
- restore is written to that client.
-\item {\bf jobid=nnn} -- specify a JobId or comma separated list of JobIds to
- be restored.
-\item {\bf before=YYYY-MM-DD HH:MM:SS} -- specify a date and time to which
- the system should be restored. Only Jobs started before the specified
- date/time will be selected, and as is the case for {\bf current} Bareos will
- automatically find the most recent prior Full save and all Differential and
- Incremental saves run before the date you specify. Note, this command is not
- too user friendly in that you must specify the date/time exactly as shown.
-\item {\bf file=filename} -- specify a filename to be restored. You must
- specify the full path and filename. Prefixing the entry with a less-than
- sign
- ({\textless}) will cause Bareos to assume that the filename is on your system and
- contains a list of files to be restored. Bareos will thus read the list from
- that file. Multiple file=xxx specifications may be specified on the command
- line.
-\item {\bf jobid=nnn} -- specify a JobId to be restored.
-\item {\bf pool=pool-name} -- specify a Pool name to be used for selection of
- Volumes when specifying options 5 and 6 (restore current system, and restore
- current system before given date). This permits you to have several Pools,
- possibly one offsite, and to select the Pool to be used for restoring.
-\item {\bf where=/tmp/bareos-restore} -- restore files in {\bf where} directory.
-\item {\bf yes} -- automatically run the restore without prompting for
- modifications (most useful in batch scripts).
-\item {\bf strip\_prefix=/prod} -- remove a part of the filename when restoring.
-\item {\bf add\_prefix=/test} -- add a prefix to all files when restoring (like
- where) (can't be used with {\bf where=}).
-\item {\bf add\_suffix=.old} -- add a suffix to all your files.
-\item {\bf regexwhere=!a.pdf!a.bkp.pdf!} -- do complex filename manipulation
- like with sed unix command. Will overwrite other filename manipulation.
- For details, see the \ilink{regexwhere}{regexwhere} section.
-\item {\bf restorejob=jobname} -- Pre-chooses a restore job. Bareos can be
- configured with multiple restore jobs ("Type = Restore" in the job
- definition). This allows the specification of different restore properties,
- including a set of RunScripts. When more than one job of this type is
- configured, during restore, Bareos will ask for a user selection
- interactively, or use the given restorejob.
-\end{itemize}
-
-\section{Using File Relocation}
-\index[general]{File Relocation!using}
-\label{filerelocation}
-\label{restorefilerelocation}
-
-\subsection*{Introduction}
-
-The \textbf{where=} option is simple, but not very powerful. With file
-relocation, Bareos can restore a file to the same directory, but with a
-different name, or in an other directory without recreating the full path.
-
-You can also do filename and path manipulations,
-such as adding a suffix to all your files, renaming files
-or directories, etc. Theses options will overwrite {\bf where=} option.
-
-
-For example, many users use OS snapshot features so that file
-\texttt{/home/eric/mbox} will be backed up from the directory
-\texttt{/.snap/home/eric/mbox}, which can complicate restores. If you use
-\textbf{where=/tmp}, the file will be restored to
-\texttt{/tmp/.snap/home/eric/mbox} and you will have to move the file to
-\texttt{/home/eric/mbox.bkp} by hand.
-
-However, case, you could use the
-\textbf{strip\_prefix=/.snap} and \textbf{add\_suffix=.bkp} options and
-Bareos will restore the file to its original location -- that is
-\texttt{/home/eric/mbox}.
-
-To use this feature, there are command line options as described in
-the \ilink{restore section}{restorefilerelocation} of this manual;
-you can modify your restore job before running it; or you can
-add options to your restore job in as described in
-\linkResourceDirective{Dir}{Job}{Strip Prefix} and \linkResourceDirective{Dir}{Job}{Add Prefix}.
-
-\begin{verbatim}
-Parameters to modify:
- 1: Level
- 2: Storage
- ...
- 10: File Relocation
- ...
-Select parameter to modify (1-12):
-
-
-This will replace your current Where value
- 1: Strip prefix
- 2: Add prefix
- 3: Add file suffix
- 4: Enter a regexp
- 5: Test filename manipulation
- 6: Use this ?
-Select parameter to modify (1-6):
-\end{verbatim}
-
-
-\subsection*{RegexWhere Format}
- \label{regexwhere}
-
-The format is very close to that used by sed or Perl (\texttt{s/replace this/by
- that/}) operator. A valid regexwhere expression has three fields :
-\begin{itemize}
-\item a search expression (with optional submatch)
-\item a replacement expression (with optionnal back references \$1 to \$9)
-\item a set of search options (only case-insensitive ``i'' at this time)
-\end{itemize}
-
-Each field is delimited by a separator specified by the user as the first
-character of the expression. The separator can be one of the following:
-\begin{verbatim}
-<separator-keyword> = / ! ; % : , ~ # = &
-\end{verbatim}
-
-You can use several expressions separated by a commas.
-
-\subsubsection*{Examples}
-
-\begin{tabular}{|c|c|c|l|}
-\hline
-Orignal filename & New filename & RegexWhere & Comments \\
-\hline
-\hline
-\texttt{c:/system.ini} & \texttt{c:/system.old.ini} & \texttt{/.ini\$/.old.ini/} & \$ matches end of name\\
-\hline
-\texttt{/prod/u01/pdata/} & \texttt{/rect/u01/rdata} & \texttt{/prod/rect/,/pdata/rdata/} & uses two regexp\\
-\hline
-\texttt{/prod/u01/pdata/} & \texttt{/rect/u01/rdata} & \texttt{!/prod/!/rect/!,/pdata/rdata/} & use \texttt{!} as separator\\
-\hline
-\texttt{C:/WINNT} & \texttt{d:/WINNT} & \texttt{/c:/d:/i} & case insensitive pattern match \\
-\hline
-
-\end{tabular}
-
-%\subsubsection{Using group}
-%
-%Like with Perl or Sed, you can make submatch with \texttt{()},
-%
-%\subsubsection*{Examples}
-
-
-%\subsubsection{Options}
-%
-% i Do case-insensitive pattern matching.
-
-\section{Restoring Directory Attributes}
-\index[general]{Attributes!Restoring Directory}
-\index[general]{Restoring Directory Attributes}
-
-Depending how you do the restore, you may or may not get the directory entries
-back to their original state. Here are a few of the problems you can
-encounter, and for same machine restores, how to avoid them.
-
-\begin{itemize}
-\item You backed up on one machine and are restoring to another that is
- either a different OS or doesn't have the same users/groups defined. Bareos
- does the best it can in these situations. Note, Bareos has saved the
- user/groups in numeric form, which means on a different machine, they
- may map to different user/group names.
-
-\item You are restoring into a directory that is already created and has
- file creation restrictions. Bareos tries to reset everything but
- without walking up the full chain of directories and modifying them all
- during the restore, which Bareos does and will not do, getting
- permissions back correctly in this situation depends to a large extent
- on your OS.
-
-\item You are doing a recursive restore of a directory tree. In this case
- Bareos will restore a file before restoring the file's parent directory
- entry. In the process of restoring the file Bareos will create the
- parent directory with open permissions and ownership of the file being
- restored. Then when Bareos tries to restore the parent directory Bareos
- sees that it already exists (Similar to the previous situation). If you
- had set the Restore job's "Replace" property to "never" then Bareos will
- not change the directory's permissions and ownerships to match what it
- backed up, you should also notice that the actual number of files
- restored is less then the expected number. If you had set the Restore
- job's "Replace" property to "always" then Bareos will change the
- Directory's ownership and permissions to match what it backed up, also
- the actual number of files restored should be equal to the expected
- number.
-
-\item You selected one or more files in a directory, but did not select the
- directory entry to be restored. In that case, if the directory is not
- on disk Bareos simply creates the directory with some default attributes
- which may not be the same as the original. If you do not select a
- directory and all its contents to be restored, you can still select
- items within the directory to be restored by individually marking those
- files, but in that case, you should individually use the "markdir"
- command to select all higher level directory entries (one at a time) to
- be restored if you want the directory entries properly restored.
-
-\end{itemize}
-
-\section{Restoring on Windows}
-\label{sec:RestoreOnWindows}
-\index[general]{Restoring on Windows}
-\index[general]{Windows!Restoring on}
-
-If you are restoring on Windows systems, Bareos will restore the files
-with the original ownerships and permissions as would be expected. This is
-also true if you are restoring those files to an alternate directory (using
-the Where option in restore). However, if the alternate directory does not
-already exist, the Bareos File daemon (Client) will try to create it. In
-some cases, it may not create the directories, and if it does since the
-File daemon runs under the SYSTEM account, the directory will be created
-with SYSTEM ownership and permissions. In this case, you may have problems
-accessing the newly restored files.
-
-To avoid this problem, you should create any alternate directory before
-doing the restore. Bareos will not change the ownership and permissions of
-the directory if it is already created as long as it is not one of the
-directories being restored (i.e. written to tape).
-
-The default restore location is {\bf /tmp/bareos-restores/} and if you are
-restoring from drive {\bf E:}, the default will be
-{\bf /tmp/bareos-restores/e/}, so you should ensure that this directory
-exists before doing the restore, or use the {\bf mod} option to
-select a different {\bf where} directory that does exist.
-
-Some users have experienced problems restoring files that participate in
-the Active Directory. They also report that changing the userid under which
-Bareos (bareos-fd.exe) runs, from SYSTEM to a Domain Admin userid, resolves
-the problem.
-
-
-
-
-\section{Restore Errors}
-\index[general]{Errors!Restore}
-\index[general]{Restore Errors}
-
-There are a number of reasons why there may be restore errors or
-warning messages. Some of the more common ones are:
-
-\begin{description}
-
-\item [file count mismatch]
- This can occur for the following reasons:
- \begin{itemize}
- \item You requested Bareos not to overwrite existing or newer
- files.
- \item A Bareos miscount of files/directories. This is an
- on-going problem due to the complications of directories,
- soft/hard link, and such. Simply check that all the files you
- wanted were actually restored.
- \end{itemize}
-
-\item [file size error]
- When Bareos restores files, it checks that the size of the
- restored file is the same as the file status data it saved
- when starting the backup of the file. If the sizes do not
- agree, Bareos will print an error message. This size mismatch
- most often occurs because the file was being written as Bareos
- backed up the file. In this case, the size that Bareos
- restored will be greater than the status size. This often
- happens with log files.
-
- If the restored size is smaller, then you should be concerned
- about a possible tape error and check the Bareos output as
- well as your system logs.
-\end{description}
-
-
-
-\section{Example Restore Job Resource}
-\index[general]{Resource!Example Restore Job}
-
-\footnotesize
-\begin{verbatim}
-Job {
- Name = "RestoreFiles"
- Type = Restore
- Client = Any-client
- FileSet = "Any-FileSet"
- Storage = Any-storage
- Where = /tmp/bareos-restores
- Messages = Standard
- Pool = Default
-}
-\end{verbatim}
-\normalsize
-
-If {\bf Where} is not specified, the default location for restoring files will
-be their original locations.
-\label{Selection}
-
-\section{File Selection Commands}
-\index[general]{Console!File Selection}
-\index[general]{File Selection Commands}
-
-After you have selected the Jobs to be restored and Bareos has created the
-in-memory directory tree, you will enter file selection mode as indicated by
-the dollar sign ({\bf \$}) prompt. While in this mode, you may use the
-commands listed above. The basic idea is to move up and down the in memory
-directory structure with the {\bf cd} command much as you normally do on the
-system. Once you are in a directory, you may select the files that you want
-restored. As a default no files are marked to be restored. If you wish to
-start with all files, simply enter: {\bf cd /} and {\bf mark *}. Otherwise
-proceed to select the files you wish to restore by marking them with the {\bf
-mark} command. The available commands are:
-
-\begin{description}
-
-\item [cd]
- \index[general]{Console!File Selection!cd}
- The {\bf cd} command changes the current directory to the argument specified.
- It operates much like the Unix {\bf cd} command. Wildcard specifications are
- not permitted.
-
- Note, on Windows systems, the various drives (c:, d:, ...) are treated like a
- directory within the file tree while in the file selection mode. As a
- consequence, you must do a {\bf cd c:} or possibly in some cases a {\bf cd
- C:} (note upper case) to get down to the first directory.
-
-\item [dir]
- \index[general]{Console!File Selection!dir}
- The {\bf dir} command is similar to the {\bf ls} command, except that it
- prints it in long format (all details). This command can be a bit slower
- than the {\bf ls} command because it must access the catalog database for
- the detailed information for each file.
-
-\item [estimate]
- \index[general]{Console!File Selection!estimate}
- The {\bf estimate} command prints a summary of the total files in the tree,
- how many are marked to be restored, and an estimate of the number of bytes
- to be restored. This can be useful if you are short on disk space on the
- machine where the files will be restored.
-
-\item [find]
- \index[general]{Console!File Selection!find}
- The {\bf find} command accepts one or more arguments and displays all files
- in the tree that match that argument. The argument may have wildcards. It is
- somewhat similar to the Unix command {\bf find / -name arg}.
-
-\item [ls]
- \index[general]{Console!File Selection!ls}
- The {\bf ls} command produces a listing of all the files contained in the
- current directory much like the Unix {\bf ls} command. You may specify an
- argument containing wildcards, in which case only those files will be
- listed.
-
- Any file that is marked to be restored will have its name preceded by an
- asterisk ({\bf *}). Directory names will be terminated with a forward slash
- ({\bf /}) to distinguish them from filenames.
-
-\item [lsmark]
- \index[general]{Console!File Selection!lsmark}
- The {\bf lsmark} command is the same as the {\bf ls} except that it will
- print only those files marked for extraction. The other distinction is that
- it will recursively descend into any directory selected.
-
-\item [mark]
- \index[general]{Console!File Selection!mark}
- The {\bf mark} command allows you to mark files to be restored. It takes a
- single argument which is the filename or directory name in the current
- directory to be marked for extraction. The argument may be a wildcard
- specification, in which case all files that match in the current directory
- are marked to be restored. If the argument matches a directory rather than a
- file, then the directory and all the files contained in that directory
- (recursively) are marked to be restored. Any marked file will have its name
- preceded with an asterisk ({\bf *}) in the output produced by the {\bf ls}
-or
- {\bf dir} commands. Note, supplying a full path on the mark command does not
- work as expected to select a file or directory in the current directory.
- Also, the {\bf mark} command works on the current and lower directories but
- does not touch higher level directories.
-
- After executing the {\bf mark} command, it will print a brief summary:
-
-\footnotesize
-\begin{verbatim}
- No files marked.
-
-\end{verbatim}
-\normalsize
-
- If no files were marked, or:
-
-\footnotesize
-\begin{verbatim}
- nn files marked.
-
-\end{verbatim}
-\normalsize
-
- if some files are marked.
-
-\item [unmark]
- \index[general]{Console!File Selection!unmark}
- The {\bf unmark} is identical to the {\bf mark} command, except that it
- unmarks the specified file or files so that they will not be restored. Note:
- the {\bf unmark} command works from the current directory, so it does not
- unmark any files at a higher level. First do a {\bf cd /} before the {\bf
- unmark *} command if you want to unmark everything.
-
-\item [pwd]
- \index[general]{Console!File Selection!pwd}
- The {\bf pwd} command prints the current working directory. It accepts no
- arguments.
-
-\item [count]
- \index[general]{Console!File Selection!count}
- The {\bf count} command prints the total files in the directory tree and the
- number of files marked to be restored.
-
-\item [done]
- \index[general]{Console!File Selection!done}
- This command terminates file selection mode.
-
-\item [exit]
- \index[general]{Console!File Selection!exit}
- This command terminates file selection mode (the same as done).
-
-\item [quit]
- \index[general]{Console!File Selection!quit}
- This command terminates the file selection and does not run the restore
-job.
-
-
-\item [help]
- \index[general]{Console!File Selection!help}
- This command prints a summary of the commands available.
-
-\item [?]
- \index[general]{Console!File Selection!?}
- This command is the same as the {\bf help} command.
-\end{description}
-
-If your filename contains some weird caracters, you can use \texttt{?},
-\texttt{*} or \textbackslash{}\textbackslash{}. For example, if your filename
-contains a \textbackslash{}, you can use
-\textbackslash{}\textbackslash{}\textbackslash{}\textbackslash{}.
-
-\begin{verbatim}
-* mark weird_file\\\\with-backslash
-\end{verbatim}
-