AFRESTORE(8)

NAME
afrestore - the restore utility of the afbackup package

SYNOPSIS
afrestore [ -nlvmi ] [ -<past-backup-no> ] [ -C <root-directory> ] [ -h <backuphosts> ] [ -P <backup-ports> ] [ -c <configuration-file> ] [ -W <identity> ] [ -A "<after-date>" ] [ -B "<before-date>" ] [ -T <tapes> ] [ -I <indexfile-part> ] [ -V <var-directory> ] [ -k <encryption-key-file> ] [ -z <process-cmd> <unprocess-cmd> ] [ -Z <built-in-compress-level> ] [ -F <format> ] [ { -N <num-indexfiles> | -O <indexfile-age-days> } ] [ -p ] <path-pattern> [ [ -p ] <path-patterns> [ ... ] ]
afrestore -a [ -nlvm ] [ -<past-backup-no> ] [ -C <root-directory> ] [ -h <backuphosts> ] [ -P <backup-ports> ] [ -c <configuration-file> ] [ -W <identity> ] [ -I <indexfile-part> ] [ -V <var-directory> ] [ -k <encryption-key-file> ] [ -z <process-cmd> <unprocess-cmd> ] [ -Z <built-in-compress-level> ] [ -F <format> ]
afrestore -{ef} [ -evm ] [ -C <root-directory> ] [ -h <backuphosts> ] [ -P <backup-ports> ] [ -V <var-directory> ] [ -z <process-cmd> <unprocess-cmd> ] [ -Z <built-in-compress-level> ] [ -k <encryption-key-file> ] [ -W <identity> ] [ -c <configuration-file> ] < <startup-info-file>
afrestore -E [ -Enlvm ] [ -C <root-directory> ] [ -h <backuphosts> ] [ -P <backup-ports> ] [ -V <var-directory> ] [ -z <process-cmd> <unprocess-cmd> ] [ -Z <built-in-compress-level> ] [ -k <encryption-key-file> ] [ -W <identity> ] [ -c <configuration-file> ] [ <cartridge-number> | <cartridge-range> ] ... ]

DESCRIPTION
The first form can be used for restoring selected pieces of a certain previous backup run. If no option of the type -<past-backup-no> is supplied (e.g. -2 ), the most recently made backup is accessed. If an option like this is given, the backup system tries to extract the files from the backup before ( -1 ) or even an earlier one. This requires, that enough file- and directory-name-logging is provided. This can be done with the client-side configuration parameter NumIndexesToStore (See: afclient.conf(8)). The parameters <path-pattern> indicate, which files and directories should be restored. An asterisk is implicitely put before and after the <path-pattern>, so it is assumed to be a substring of the path. This can be prevented preceding the <path-pattern> with the option -p. These may be wildcards for the full path name leading to the file relative to the directory, to that the client changes before starting any backup or restore (See under the parameter RootDirectory under afclient.conf(8)). Note, that you have to put these into quotes, if you are using wildcards to prevent substutition. It is a bad idea to restore a total backup entering: restore "*" This leads to a huge filelist to be processed by the client, what might plug up memory and/or temporary space in some filesystem. Instead you should use the second form with the option -a, what restores a total backup. The third form restores without looking for filename log files. Instead it reads the standard input for information, where to extract from. The format expected at standard input is the same as produced by incr_backup or full_backup, if the configuration option StartupInfoProgram is used. The given program is then supplied with the appropriate information and should write it to some place outside the local host, so that it will not be affected by a hard crash (see: StartupInfoProgram in afclient.conf(8)). The flag -e can be supplied more than one time. In that case the emergency restore goes back to the beginning of the previous full backup, if the full backup is split into several parts (configuration parameter NumBackupParts) and the last part of the current full backup has not yes run. If the backup parts configuration has changed after the beginning of the previous full backup, this option should be considered, as it gives additional safety, that really everything will be restored. The fourth form scans the cartridges (if supplied) on the given servers (if supplied, eventually with alternate given port numbers - see below for the format, how to specify cartridge/host/port-triples) for backups done from the host, where the restore program is started and restores everything it finds. The functionality is similar to -e, but no input has to be supplied. Like with option -e, the -E flag can be given several times, what has the same meaning like with option -e (see above). If the client's hostname has changed or restore should be done on another host, the original client ID must be supplied with the -W option. Otherwise nothing or the wrong stuff will be restored. Scanning the cartridges can take a lot of time, but it should be several minutes, not hours. Cartridges can be supplied in three forms as arguments: simple numbers, ranges (e. g. as 3-5 without spaces), and ranges relative to the current backup writing position (e. g. as -3). In the latter case -0 means the cartridge, that will be written to next time i.e. that holds the current writing point. -2 stands for the latest 3 cartridges. To indicate, that a cartridge is located at a certain backup server, maybe with a special port number (if there are several backup servers), the cartridge number or range can be followed by the at-character @, optionally followed by the percent character % and the port number, e. g. 3-5@buhost%2989 . No whitespace is allowed in such a specifier. If no port is given, the default port is assumed (2988). If no hostname is given, the default backup server is used. Default backup server is the first one in the list, that is configured in the parameter file or overriden by the option -h. Any number of ranges or numbers can be supplied, overlapping duplicates are ignored. If no cartridge numbers are given, the program searches backward from the current writing position on each configured backup server until it thinks, it has enough backups found, or all cartridges on that server have been tried. The found backups are sorted in the correct order (using the stored backup time) and afterwards everything found is restored. This form of the command needs no information at all for an emergency restore. If the configuration file is not supplied explicitly, then it is searched for in the @clientlibdir@ and if not found there the files /etc/buclient.conf, /etc/afbuclient.conf, /etc/afclient.conf and /etc/afbackup/client.conf are tried.

-A <date>
    restore files modified after the given date. The date should be put into quotes, cause it usually contains whitespace. Valid formats are e.g.:
      MM/DD/YYYY hh:mm:ss
      DD.MM.YYYY hh:mm:ss
    or the formats produced by ctime(3) or date(1). The year may be supplied in two digits or in the non-US- formats be omitted, then the current year is assumed. The seconds may also be omitted (hh:mm), the whole time may be left off, then 00:00 is assumed. Thus the shortest valid format is DD.MM

-B <date>
    restore files modified before the given date. See -A for the valid date formats

-C <rootdir>
    change to the given root-directory before restoring files instead of the one specified in the client side configuration file. If this directory does not exist, it will be created

-c <configfile>
    use the given file for configuration information

-e  restore all files from the previous backup in an emergency case without looking for the filename logfiles, which are also restored

-F <format-string>
    In combination with -l a format string for output. Default is: only the full paths of the stored files are printed, one per line. The format string can also contain patterns representing other file attributes present in the index file(s). For possible patterns see below under FORMAT STRING.

-f  restore only the filename logfiles in an emergency case

-h <hostnames>
    Use the given list of hosts as backup servers. This list is used only, if no hostname information can be found as associated with the current filesystem entry, that should be restored. The first host in this list is the default server, if no hostname information at all can be found. If -E is given and no cartridge number is supplied at all, all hosts in this list are tried one after the other. The hostnames in this list can be separated by whitespace and/or commas

-I <idx-prefix>
    The first part of the filename, the names of the stored files and directories are written to. The current total backup number is appended (that increments each start of a full backup). If these files undergo processing, .z is appended

-i  Ignore case distinctions in the filename patterns

-k <file>
    Use the contents of the given file as encryption key for authenticating to the server

-l  Do not restore anything, just list the names of the files and/or directories, that fit the supplied path-part(s); in combination with -E: just scan the given tape(s) and printout the minimum restore info, that can be read by restore -e

-m  Do not overwrite existing files (merge)

-n  do not restore anything, just printout a message, how many files and/or directories fit the supplied path-part(s); in combination with -E: just scan the given tape(s) and printout, what backups have been written there

-N <numidxs>
    The maximum number of index files, that are scanned for matching filenames. With each full backup, a new index file is created. If time restrictions are given (options -A or -B), all existing index files are read, what may take a long time, if many of them are kept available (see clientside configuration option NumIndexesToStore or option -N of full_backup). So using this parameter the scanning can be restricted to a certain number of files

-O <maxidxage>
    The maximum age of index files, that are scanned for matching filenames, in days. See option -N . The given number of days may be a floating point value

-P <portnos>
    The list of port numbers for the backup servers either configured in the parameter file or supplied with the -h option. This list is used only, if no port number information can be found as associated with the current filesystem entry, that should be restored. The port numbers supplied here are associated with the backup server names by position. The port numbers in this list can be separated by whitespace and/or commas

-T <tapes>
    Restore and list only files from the given list of tapes. Tapes can be specified using numbers, commas and dashes, e.g. 3-5,8,1

-V <var-dir>
    The directory, where varying files are put

-z <proccmd> <unproccmd>
    The commands to use for process and unprocess. If a command comprises of several words, it must be put in quotes

I suggest to run restore with the -l option before really going to restore anything. So you see, what files will be generated, without overwriting existing ones unintendedly.

FORMAT STRING
The following patterns will be replaced:

%n  The filename with full path like in default output

%b  The basename of the file, without path

%O  The username of the file owner

%o  The user-ID of the file owner (integer)

%m  The modification time in seconds since epoch

%M  The modification time in readable format

%t  The starting time of the backup containing the file in seconds since epoch

%T  Like %t, but in readable format

%h  The hostname of the backup server, to that the file has been backuped

%p  The port number of the backup server, to that the file has been backuped

%c  The cartridge number on the server, the saved file can be found on

%f  The tape file number on cartridge %c, where the saved file can be found

%%  A percent character

The usual C-like backslash sequences are allowed, but special characters within the filenames are still printed as escape sequences, e.g. \n . A newline at the end must be given explicitly as backslash n (\n), otherwise no new line will start. Double quotes should be written as argument enclosed in single quotes. To see several versions of a saved filesystem entry in the indexes the option -B or -A must be given, maybe with a condition, that is always true, e.g. -B 23:59, what means: before today, 23:59.

FILES

@clientlibdir@/@clientconf@
    Client configuration file

@clientlogdir@
    The directory for logging the client backups

@clientvardir@
    Some internal state information of the client backups.

SEE ALSO
afclientconfig(8), xafclientconfig(8), full_backup(8), incr_backup(8), afverify(8), afrestore(8), xafrestore(8), update_indexes(8), copy_tape(8), afclient.conf(8), afserver(8), afmserver(8), afserver.conf(8), tar(1)

AUTHOR
afbackup was written by Albert Fluegel (af@muc.de).