Blob Blame History Raw
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
                   "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"
[
  <!-- entities files to use -->
  <!ENTITY % global_entities SYSTEM 'global.entities'>
  %global_entities;
]>

<refentry id='amanda.conf.5'>

<refmeta>
<refentrytitle>amanda.conf</refentrytitle>
<manvolnum>5</manvolnum>
&rmi.source;
&rmi.version;
&rmi.manual.5;
</refmeta>
<refnamediv>
<refname>amanda.conf</refname>
<refpurpose>Main configuration file for Amanda, the Advanced Maryland Automatic Network Disk Archiver</refpurpose>
</refnamediv>
<refentryinfo>
&author.jds;
&author.sgw.xml;
</refentryinfo>
<!-- body begins here -->

<refsect1><title>DESCRIPTION</title>
<para>&amconf; is the main configuration file for Amanda. This manpage lists the
relevant sections and parameters of this file for quick reference.</para>
<para> The file <emphasis remap='B'>&lt;CONFIG_DIR&gt;/amanda.conf</emphasis>
is loaded if it exists then the files
<emphasis remap='B'>&lt;CONFIG_DIR&gt;/&lt;config&gt;/amanda.conf</emphasis>
is loaded.</para>
</refsect1>

<refsect1><title>SYNTAX</title>

<para>There are a number of configuration parameters that control the
behavior of the Amanda programs.
All have default values,
so you need not specify the parameter in
<emphasis remap='B'>amanda.conf</emphasis>
if the default is suitable.</para>

<refsect2><title>COMMENTS</title>

<para>Lines starting with # are ignored, as are blank lines.
Comments may be placed on a line with a directive by starting
the comment with a #.
The remainder of the line is ignored.</para>
</refsect2>

<refsect2><title>KEYWORDS AND IDENTIFIERS</title>

<para>Keywords are case insensitive, i.e.
<amkeyword>mailto</amkeyword>
and
<amkeyword>MailTo</amkeyword>
are treated the same.  Also, the characters
'<amkeyword>-</amkeyword>' and '<amkeyword>_</amkeyword>'
are interchangeable in all predefined Amanda keywords:
<amkeyword>device_property</amkeyword>
and
<amkeyword>device-property</amkeyword>
have the same meaning.  This manpage uses the dashed versions, but the
underscored versions will be accepted for backward compatibility</para>

<para>Identifiers are names which are defined in the configuration itself, such
as dumptypes or interfaces.  Identifiers are are case-insensitive, but
sensitive to
'<amkeyword>-</amkeyword>' vs.  '<amkeyword>_</amkeyword>'.
Identifiers should be quoted in the configuration file, although For historical
reasons, the quotes are optional.</para>

<para>Strings are always quoted with double quotes ("), and any double quotes
or backslashes within the string are escaped with a backslash:
<programlisting>
tapelist "/path/to/tapelist"
property "escaped-string" "escaping: \\ (backslash) and \" (double-quote)"
</programlisting>
</para>

<para>To summarize, then:
<programlisting>
                          # QUOTES        CASE            -/_
logdir "logs"             # required      sensitive       sensitive
send-amreport-on strange  # prohibited    insensitive     insensitive
tapetype "EXABYTE"        # optional      insensitive     sensitive

define dumptype "dt" {    # optional      insensitive     sensitive
  "dumptype-common"       # optional      insensitive     sensitive
  strategy noinc          # prohibited    insensitive     insensitive
}
</programlisting>
</para>

</refsect2>

<refsect2><title>VALUE SUFFIXES</title>

<para>Integer arguments may have one of the following (case insensitive) suffixes,
some of which have a multiplier effect:</para>

<variablelist remap='TP'>
  <varlistentry>
  <term><amkeyword>b byte bytes</amkeyword></term>
  <listitem>
<para>Some number of bytes.</para>
  </listitem>
  </varlistentry>
  <varlistentry>
  <term><amkeyword>bps</amkeyword></term>
  <listitem>
<para>Some number of bytes per second.</para>
  </listitem>
  </varlistentry>
  <varlistentry>
  <term><amkeyword>k kb kbyte kbytes kilobyte kilobytes</amkeyword></term>
  <listitem>
<para>Some number of kilobytes (bytes*1024).</para>
  </listitem>
  </varlistentry>
  <varlistentry>
  <term><amkeyword>kps kbps</amkeyword></term>
  <listitem>
<para>Some number of kilobytes per second (bytes*1024).</para>
<para>It is the default multiplier for all size options.</para>
  </listitem>
  </varlistentry>
  <varlistentry>
  <term><amkeyword>m mb meg mbyte mbytes megabyte megabytes</amkeyword></term>
  <listitem>
<para>Some number of megabytes (bytes*1024*1024).</para>
  </listitem>
  </varlistentry>
  <varlistentry>
  <term><amkeyword>mps mbps</amkeyword></term>
  <listitem>
<para>Some number of megabytes per second (bytes*1024*1024).</para>
  </listitem>
  </varlistentry>
  <varlistentry>
  <term><amkeyword>g gb gbyte gbytes gigabyte gigabytes</amkeyword></term>
  <listitem>
<para>Some number of gigabytes (bytes*1024*1024*1024).</para>
  </listitem>
  </varlistentry>
  <varlistentry>
  <term><amkeyword>t tb tbyte tbytes terabyte terabytes</amkeyword></term>
  <listitem>
<para>Some number of terabytes (bytes*1024*1024*1024*1024).</para>
  </listitem>
  </varlistentry>
  <varlistentry>
  <term><amkeyword>tape tapes</amkeyword></term>
  <listitem>
<para>Some number of tapes.</para>
  </listitem>
  </varlistentry>
  <varlistentry>
  <term><amkeyword>day days</amkeyword></term>
  <listitem>
<para>Some number of days.</para>
  </listitem>
  </varlistentry>
  <varlistentry>
  <term><amkeyword>week weeks</amkeyword></term>
  <listitem>
<para>Some number of weeks (days*7).</para>

<note><para>The value
<amkeyword>inf</amkeyword>
may be used in most places where an integer is expected
to mean an infinite amount.</para>

<para>Boolean arguments may have any of the values
<amkeyword>1</amkeyword>,
<amkeyword>y</amkeyword>,
<amkeyword>yes</amkeyword>,
<amkeyword>t</amkeyword>,
<amkeyword>true</amkeyword>
or
<amkeyword>on</amkeyword>
to indicate a true state, or
<amkeyword>0</amkeyword>,
<amkeyword>n</amkeyword>,
<amkeyword>no</amkeyword>,
<amkeyword>f</amkeyword>,
<amkeyword>false</amkeyword>
or
<amkeyword>off</amkeyword>
to indicate a false state.
If no argument is given,
<amkeyword>true</amkeyword>
is assumed.
</para>
</note>
  </listitem>
  </varlistentry>
</variablelist>
</refsect2>

<refsect2><title>PARAMETER ORDER</title>

<para>In general, the order in which parameters occur in the configuration file
does not matter, with the exception of subsection inheritance.  For example, if
dumptype "normal-encrypt" which inherits from dumptype "normal", then "normal"
must appear first in the configuration file.</para>

</refsect2>

<refsect2><title>STRINGS</title>
<para>Quoted strings in Amanda follow a common, C-like syntax.  Printable
characters and whitespace are kept as-is, except that the backslash character
(\) is used as an escape character, and a double-quote ends the string.  The allowed
escape sequences are
<programlisting>
    ESCAPE SEQUENCE     BECOMES
    \\                  \
    \"                  "
    \n                  (newline)
    \t                  (tab)
    \r                  (carriage return)
    \f                  (form-feed)
    \1 - \7
    \01 - \77
    \001 - \377         (character specified in octal)
</programlisting>
Illegally quoted strings are handled on a "best-effort" basis, which may lead to
unexpected results.
</para>
<para>Examples:
<programlisting>
finserver "/data/finance/XYZ Corp's \"real\" finances" finance-high eth0 -1
property "syspath" "C:\\WINDOWS\\SYSTEM"
</programlisting>
</para>
</refsect2>

<refsect2><title>SUBSECTIONS AND INHERITANCE</title>

<para>Amanda configuration files may include various
<emphasis>subsections</emphasis>, each defining a set of configuration
directives.  Each type of subsection is described below.  Note that all types
of subsections can <emphasis>inherit</emphasis> from other subsections of the
same type by naming the "parent" section in the "child" subsection.  For
example:

<programlisting>
define dumptype global {
    record yes
    index yes
}

define dumptype nocomp {
    global      # inherit the parameters in dumptype 'global'
    compress none
}
</programlisting></para>

<para>Note that multiple inheritance is also supported by simply naming
multiple parent sections in a child.  Parents are implicitly expanded in place
in a child, and the last occurrence of each parameter takes precedence.  For
example,
<programlisting>
define tapetype par1 {
    comment "Parent 1"
    filemark 8k
    speed 300bps
    length 200M
}
define tapetype par2 {
    comment "Parent 2"
    filemark 16k
    speed 400bps
}
define tapetype child {
    par1
    par2
    filemark 32k
}
</programlisting>
In this example, 'child' will have a filemark of 32k, a speed of 400bps, and a
length of 200M.</para>
</refsect2>

</refsect1>

<refsect1>
<title>GLOBAL PARAMETERS</title>

<variablelist remap='TP'>
  <varlistentry>
  <term><amkeyword>amrecover-changer</amkeyword> <amtype>string</amtype></term>
  <listitem>
<para>Default: not set.
Amrecover will use the changer if you use 'settape &lt;string&gt;' and that string
is the same as the <amkeyword>amrecover-changer</amkeyword> setting.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>amrecover-check-label</amkeyword> <amtype>bool</amtype></term>
  <listitem>
<para>Deprecated; amrecover always checks the label, and does not invoke amrestore.</para>
<para>Default:
<amkeyword>on</amkeyword>.
Amrecover will call amrestore with the -l flag to check the label.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>amrecover-do-fsf</amkeyword> <amtype>bool</amtype></term>
  <listitem>
<para>Deprecated; amrecover always uses fsf, and does not invoke amrestore.</para>
<para>Default:
<amkeyword>on</amkeyword>.
Amrecover will call amrestore with the -f flag for faster positioning of the tape.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>autoflush</amkeyword> <amkeyword>no</amkeyword>|<amkeyword>yes</amkeyword>|<amkeyword>all</amkeyword></term>
  <listitem>
<para>Default:
<amkeyword>no</amkeyword>.
Whether an amdump run will flush the dumps from holding disk to tape.
With <amkeyword>yes</amkeyword>, only dump matching the command line argument are flushed.
With <amkeyword>all</amkeyword>, all dump are flushed.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>autolabel</amkeyword>
        <amtype>string</amtype>
        [<amkeyword>any</amkeyword>]
        [<amkeyword>other-config</amkeyword>]
        [<amkeyword>non-amanda</amkeyword>]
        [<amkeyword>volume-error</amkeyword>]
        [<amkeyword>empty</amkeyword>]</term>
  <listitem>
    <para>Default: not set.
When set, this directive will cause Amanda to automatically write an Amanda
tape label to most volume she encounters. This option is DANGEROUS
because when set, Amanda may erase near-failing tapes or tapes accidentally
loaded in the wrong slot.</para>
<para>When using this directive, specify the template for new tape
labels. The template can contains many variables that are substituted by their
values:
<programlisting>
    $c : config name
    $o : org configuration
    $b : barcode of the volume
    $s : slot number, can specify a minimun number of digit:
         $3s to get '001'
    $m : meta label
    $r : storage name
</programlisting></para>
<para>The template can contain some number of contiguous '%'
characters, which will be replaced with a generated number (000-999),
or some number of contiguous '!', which will be replaced with a generated
letter sequence (AAA-ZZZ).
Be sure to specify enough '%' or '!' characters that you do not run out of
tape labels.
Example:
<markup>&quot;DailySet1-%%%&quot;</markup>,
<markup>&quot;DailySet1-!!!&quot;</markup>,
<markup>&quot;$c-%%%&quot;</markup>,
<markup>&quot;$m-%%%&quot;</markup>,
<markup>&quot;$m-$b&quot;</markup>
</para>
<para>The generared label can be used only if it match the
<amkeyword>labelstr</amkeyword> setting. The volume will not be used if the
generated label doesn't match the <amkeyword>labelstr</amkeyword> setting.
</para>
<para>Note that many devices cannot distinguish an empty tape from an error
condition, so it may is often necessary to include
<amkeyword>volume-error</amkeyword> as an autolabel condition.</para>
<variablelist remap='TP'>
<varlistentry>
<term><amkeyword>any</amkeyword></term>
<listitem>equivalent to '<amkeyword>other-config non-amanda volume-error empty</amkeyword>'
</listitem>
</varlistentry>
<varlistentry>
<term><amkeyword>other-config</amkeyword></term>
<listitem>Label volumes with a valid Amanda label that do not match our
<amkeyword>labelstr</amkeyword>. Danger: this may erase volumes
from other Amanda configurations without warning!
</listitem>
</varlistentry>
<varlistentry>
<term><amkeyword>non-amanda</amkeyword></term>
<listitem>Label volumes which do not start with data that resembles an
Amanda header. Danger: this may erase volumes from other backup applications
without warning!
</listitem>
</varlistentry>
<varlistentry>
<term><amkeyword>volume-error</amkeyword></term>
<listitem>Label volumes where an error occurs while trying to read the label.
Danger: this may erase arbitrary volumes due to transient errors.
</listitem>
</varlistentry>
<varlistentry>
<term><amkeyword>empty</amkeyword></term>
<listitem>Label volumes where a read returns 0 bytes.
</listitem>
</varlistentry>
</variablelist>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>bumpdays</amkeyword> <amtype>int</amtype></term>
  <listitem>
<para>Default:
<amdefault>2 days</amdefault>.
To insure redundancy in the dumps, Amanda keeps filesystems at the
same incremental level for at least
<amkeyword>bumpdays</amkeyword>
days, even if the other bump threshold criteria are met.</para>
<para>
The global setting of this parameter can be overwritten inside of a
dumptype-definition.
</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>bumpmult</amkeyword> <amtype>float</amtype></term>
  <listitem>
<para>Default:
<amdefault>1.5</amdefault>.
The bump size multiplier.
Amanda multiplies
<amkeyword>bumpsize</amkeyword>
by this factor for each level.
This prevents active filesystems from
bumping too much by making it harder to bump to the next level.
For example, with the default
<amkeyword>bumpsize</amkeyword>
and
<amkeyword>bumpmult</amkeyword>
set to 2.0, the bump threshold will be 10 Mbytes for level one, 20
Mbytes for level two, 40 Mbytes for level three, and so on.</para>
<para>
The global setting of this parameter can be overwritten inside of a
dumptype-definition.
</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>bumppercent</amkeyword> <amtype>int</amtype></term>
  <listitem>
<para>Default:
<amdefault>0</amdefault>.
The minimum savings required to trigger an automatic
bump from one incremental level to the next, expressed as percentage of the
current size of the DLE (size of current level 0).
If Amanda determines that the next higher backup level
will be this much smaller than the current level,
it will do the next level.
</para>
<para>
If this parameter is set to 0, the value of the
parameter <emphasis>bumpsize</emphasis> is used to trigger bumping.
</para>
<para>
The global setting of this parameter can be overwritten inside of a
dumptype-definition.
</para>
<para>
See also the options
<amkeyword>bumpsize</amkeyword>,
<amkeyword>bumpmult</amkeyword> and
<amkeyword>bumpdays</amkeyword>.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>bumpsize</amkeyword> <amtype>int</amtype></term>
  <listitem>
<para>Default:
<amdefault>10 Mbytes</amdefault>.
The minimum savings required to trigger an automatic
bump from one incremental level to the next, expressed as size.
If Amanda determines that the next higher backup level
will be this much smaller than the current level,
it will do the next level.
The value of this parameter is used only if the parameter
<emphasis>bumppercent</emphasis> is set to 0.
</para>
<para>The default unit is Kbytes if it is not specified.</para>
<para>
The global setting of this parameter can be overwritten inside of a
dumptype-definition.
</para>
<para>
See also the options
<amkeyword>bumppercent</amkeyword>,
<amkeyword>bumpmult</amkeyword> and
<amkeyword>bumpdays</amkeyword>.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>changerdev</amkeyword> <amtype>string</amtype></term>
  <listitem>
<para>Default:
<amdefault>&quot;dev/null&quot;</amdefault>.
A tape changer configuration parameter.
Usage depends on the particular changer defined with the
<amkeyword>tpchanger</amkeyword>
option.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>changerfile</amkeyword> <amtype>string</amtype></term>
  <listitem>
<para>Default:
<amdefault>&quot;changer&quot;</amdefault>.
This option is deprecated; use the <amkeyword>changerfile</amkeyword> in the
<amkeyword>changer</amkeyword> section. Only chg-multi use it.
A file where the changer store its state.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>columnspec</amkeyword> <amtype>string</amtype></term>
  <listitem>
<para> default: "HostName=0:-12:12,Disk=1:-11:11,Level=1:-1:1,OrigKB=1:-7:0,OutKB=1:-7:0,Compress=1:-6:1,DumpTime=1:-7:7,Dumprate=1:-6:1,TapeTime=1:-6:6,TapeRate=1:-6:1"</para>
<para>Defines the width of columns <emphasis remap='B'>amreport</emphasis>
should use.
<emphasis remap='I'>String</emphasis>
is a comma (',') separated list of triples. Each triple consists
of four parts which are separated by a equal sign ('=') and a colon (':') (see the example).
These four parts specify:

  <orderedlist>
  <listitem>
      <para>the name of the column, which may be:

<programlisting>
	Compress (compression ratio)
	Disk (client disk name)
	DumpRate (dump rate in KBytes/sec)
	DumpTime (total dump time in hours:minutes)
	HostName (client host name)
	Level (dump level)
	OrigKB (original image size in KBytes)
	OutKB (output image size in KBytes)
	TapeRate (tape writing rate in KBytes/sec)
	TapeTime (total tape time in hours:minutes)
</programlisting></para>

  </listitem>

  <listitem>
<para>the amount of space to display before the column (used to get whitespace between columns).</para>
  </listitem>
  <listitem>
<para>the width of the column itself.
If set to a negative value, the width will be calculated on demand to fit the largest entry in
this column.</para>
  </listitem>
  <listitem>
<para>the precision of the column, number of digit after the decimal point for number.</para>
  </listitem>
  </orderedlist></para>

<para>Parts may be omitted, and will adopt a default value; trailing colons may also be omitted.</para>

<para>Here is an example:
<programlisting>
columnspec &quot;Disk=1:18,HostName=0:10,OrigKB=::2,OutKB=1:7&quot;
</programlisting></para>
<para>
The above will display the disk information in 18 characters
and put one space before it. The hostname column will be 10 characters wide with
no space to the left. The Original KBytes print 2 decimal digit. The output KBytes column is seven characters wide
with one space before it.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>command-file</amkeyword> <amtype>string</amtype></term>
  <listitem>
<para>Default: <amdefault>command_file</amdefault>. A file where amanda store information about running job.</para>
<para>See <manref name="amanda-command-file" vol="5"/>.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>compress-index</amkeyword> <amtype>boolean</amtype></term>
  <listitem>
<para>Default:
<amdefault>yes</amdefault>. Compress all index files, this is useful to
save space in the <amkeyword>indexdir</amkeyword> but require more
processing.</para>
<para>The compression ratio is generaly above 20x, it is faster to read
compressed index files because there is 20 times less data to read from
disk.</para>
<para>Changing this setting will uncompress/compress all index files.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>connect-tries</amkeyword> <amtype>int</amtype></term>
  <listitem>
<para>Default:
<amdefault>3</amdefault>.
How many times the server will try a connection.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>ctimeout</amkeyword> <amtype>int</amtype></term>
  <listitem>
<para>Default:
<amdefault>30 seconds</amdefault>.
Maximum amount of time that
<emphasis remap='B'>amcheck</emphasis>
will wait for each client host.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>debug-auth</amkeyword> <amtype>int</amtype></term>
  <listitem>
<para>Default:
<amdefault>0</amdefault>.
Debug level of the auth module</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>debug-chunker</amkeyword> <amtype>int</amtype></term>
  <listitem>
<para>Default:
<amdefault>0</amdefault>.
Debug level of the chunker process</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>debug-days</amkeyword> <amtype>int</amtype></term>
  <listitem>
<para>Default:
<amdefault>3</amdefault>.
The number of days the debug files are kept.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>debug-driver</amkeyword> <amtype>int</amtype></term>
  <listitem>
<para>Default:
<amdefault>0</amdefault>.
Debug level of the driver process</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>debug-dumper</amkeyword> <amtype>int</amtype></term>
  <listitem>
<para>Default:
<amdefault>0</amdefault>.
Debug level of the dumper process</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>debug-event</amkeyword> <amtype>int</amtype></term>
  <listitem>
<para>Default:
<amdefault>0</amdefault>.
Debug level of the event module</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>debug-holding</amkeyword> <amtype>int</amtype></term>
  <listitem>
<para>Default:
<amdefault>0</amdefault>.
Debug level of the holdingdisk module</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>debug-planner</amkeyword> <amtype>int</amtype></term>
  <listitem>
<para>Default:
<amdefault>0</amdefault>.
Debug level of the planner process</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>debug-protocol</amkeyword> <amtype>int</amtype></term>
  <listitem>
<para>Default:
<amdefault>0</amdefault>.
Debug level of the protocol module</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>debug-recovery</amkeyword> <amtype>int</amtype></term>
  <listitem>
<para>Default:
<amdefault>1</amdefault>.
Debug level of all recovery process</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>debug-taper</amkeyword> <amtype>int</amtype></term>
  <listitem>
<para>Default:
<amdefault>0</amdefault>.
Debug level of the taper process</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>device-output-buffer-size</amkeyword> <amtype>int</amtype></term>
  <listitem>
<para>Default:
<amdefault>1280k</amdefault>.
Controls the amount of memory used by Amanda
to hold data as it is read from the network or disk before it is written to
the output device. Higher values may be
useful on fast tape drives and optical media.</para>
<para>The default unit is bytes if it is not specified.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>device-property</amkeyword> <amtype>string</amtype> <amtype>string</amtype></term>
  <listitem>
<para>These options can set various device properties.  See
<manref name="amanda-devices" vol="7"/>
for more information on device properties and their syntax.
Both strings are always quoted; the first string contains the name of
the property to set, and the second contains its value. For example, to set
a fixed block size of 128k, write:</para>
<programlisting>
device-property "BLOCK_SIZE" "128k"
</programlisting>

  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>diskfile</amkeyword> <amtype>string</amtype></term>
  <listitem>
<para>Default:
<amdefault>&quot;disklist&quot;</amdefault>.
The file name for the
<emphasis remap='I'>disklist</emphasis>
file holding client hosts, disks and other client dumping information.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>displayunit</amkeyword> &quot;k|m|g|t&quot;</term>
  <listitem>
<para>Default:
<amdefault>&quot;k&quot;</amdefault>.
The unit used to print many numbers, k=kilo, m=mega, g=giga, t=tera.
</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>dtimeout</amkeyword> <amtype>int</amtype></term>
  <listitem>
<para>Default:
<amdefault>1800 seconds</amdefault>.
Amount of idle time per disk on a given client that a
<emphasis remap='B'>dumper</emphasis>
running from within
<command>amdump</command>
will wait before it fails with a data timeout error.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>dumpcycle</amkeyword> <amtype>int</amtype></term>
  <listitem>
<para>Default:
<amdefault>10 days</amdefault>.
The number of days in the backup cycle.
Each disk will get a full backup at least this often.
Setting this to zero tries to do a full backup each run.</para>
<note><para>This parameter may also be set in a specific
<amkeyword>dumptype</amkeyword>
(see below).
This value sets the default for all
<amkeyword>dumptype</amkeyword>s
so must appear in
<emphasis remap='B'>amanda.conf</emphasis>
before any
<amkeyword>dumptype</amkeyword>s
are defined.</para>
</note>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>dumporder</amkeyword> <amtype>string</amtype></term>
  <listitem>
<para>Default:
<amdefault>&quot;tttTTTTTTT&quot;</amdefault>.
The priority order of each dumper:

<programlisting>
s: smallest size
S: largest size
t: smallest time
T: largest time
b: smallest bandwidth
B: largest bandwidth
</programlisting></para>

  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>dumpuser</amkeyword> <amtype>string</amtype></term>
  <listitem>
<para>Default:
<amdefault>&quot;amanda&quot;</amdefault>.
The login name Amanda uses to run the backups.
The backup client hosts must allow access
from the tape server host as this user via
<markup>.rhosts</markup>
or
<markup>.amandahosts</markup>,
depending on how the Amanda software was built.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>eject-volume</amkeyword> <amtype>bool</amtype></term>
  <listitem>
    <para>Default: <amdefault>no</amdefault>.
Set to <amkeyword>yes</amkeyword> if you want the volume to be ejected
after Amanda wrote data to it. It works only with some changer and device.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>etimeout</amkeyword> <amtype>int</amtype></term>
  <listitem>
<para>Default:
<amdefault>300 seconds</amdefault>.
Amount of time per estimate on a given client that the
<emphasis remap='B'>planner</emphasis> step of
<command>amdump</command> will wait to get the dump size estimates
(note: Amanda runs up to 3 estimates for each DLE).  For instance,
with the default of 300 seconds and four DLE's, each estimating level
0 and level 1 on client A, <emphasis remap='B'>planner</emphasis>
will wait up to 40 minutes for that machine.  A negative value will
be interpreted as a total amount of time to wait
per client instead of per disk.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>flush-threshold-dumped</amkeyword> <amtype>int</amtype></term>
  <listitem>
<para>Default: <amdefault>0</amdefault>.
  Amanda will not begin writing data to a new volume until the amount of
  data on the holding disk is at least this percentage of the volume
  size and the criterion for flush-threshold-scheduled is also
  met. In other words, Amanda will not begin until the
  amount of data on the holding disk is greater than the tape
  length times this parameter.
  This parameter may be larger than 100%, for example to keep
  more recent dumps on the holding disk for faster recovery.</para>
<para> Needless to say, your holding disk must be big enough
  that this criterion could be satisfied. If the holding disk cannot
  be used for a particular dump (because, for example, there is no
  remaining holding space) then Amanda will disregard the constraint
  specified by this setting and start a new volume anyway. Once
  writing to a volume has begun, this constraint is not applied unless
  and until a new volume is needed.</para>
<para> The value of this parameter may not exceed than that of
  the <amkeyword>flush-threshold-scheduled</amkeyword>
  parameter.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>flush-threshold-scheduled</amkeyword> <amtype>int</amtype></term>
  <listitem>
<para>Default: <amdefault>0</amdefault>.
  Amanda will not begin writing data to a new volume until the sum of the
  amount of data on the holding disk and the estimated amount of data
  remaining to be dumped during this run is at least this percentage
  of the volume size and the criterion for flush-threshold-dumped is also
  met. In other words, Amanda will not begin until the
  inequality <inlineequation><mathphrase>h + s &gt; t &#215;
  d</mathphrase></inlineequation> is satisfied,
  where <mathphrase>h</mathphrase> is the amount of data on the
  holding disk, <mathphrase>s</mathphrase> is the total amount of
  data scheduled for this run but not dumped
  yet, <mathphrase>t</mathphrase> is the capacity of a volume,
  and <mathphrase>d</mathphrase> is this parameter, expressed as a
  percentage.  This parameter may be larger than 100%.</para>
<para>  Needless to say, your holding disk must be big enough
  that this criterion could be satisfied. If the holding disk cannot
  be used for a particular dump (because, for example, there is no
  remaining holding space) then Amanda will disregard the constraint
  specified by this setting and start a new volume anyway.  Once
  writing to a volume has begun, this constraint is not applied unless
  and until a new volume is needed.</para>
<para> The value of this parameter may not be less than that of
  the <amkeyword>flush-threshold-dumped</amkeyword>
  or <amkeyword>taperflush</amkeyword> parameters.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>includefile</amkeyword> <amtype>string</amtype></term>
  <listitem>
<para>Default:
<amdefault>no default</amdefault>.
The name of an Amanda configuration file to include within the current file.
Useful for sharing dumptypes, tapetypes and interface definitions among several configurations.
Relative pathnames are relative to the configuration directory.
</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>indexdir</amkeyword> <amtype>string</amtype></term>
  <listitem>
<para>Default
<amdefault>&quot;/usr/adm/amanda/index&quot;</amdefault>.
The directory where index files (backup image catalogues) are stored.
Index files are
only generated for filesystems whose
<amkeyword>dumptype</amkeyword>
has the
<amkeyword>index</amkeyword>
option enabled.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>infofile</amkeyword> <amtype>string</amtype></term>
  <listitem>
<para>Default:
<amdefault>&quot;/usr/adm/amanda/curinfo&quot;</amdefault>.
The file or directory name for the historical information database.
If Amanda was configured to use DBM databases, this is the base file
name for them.
If it was configured to use text formatted databases (the default),
this is the base directory and within here will be a directory per
client, then a directory per disk, then a text file of data.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>inparallel</amkeyword> <amtype>int</amtype></term>
  <listitem>
<para>Default:
<amdefault>10</amdefault>.
The maximum number of backups that Amanda will attempt to run in parallel.
Amanda will stay within the constraints of network bandwidth and
holding disk space available, so it doesn't hurt to set
this number a bit high. Some contention can occur with larger numbers
of backups, but this effect is relatively small on most systems.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>interactivity</amkeyword> <amtype>string</amtype></term>
  <listitem>
<para>Default: not set.  The interactivity module Amanda should use to interact with
the user.  See <manref name="amanda-interactivity" vol="7" /> for a list of
modules.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>labelstr</amkeyword> <amtype>string</amtype> | <amkeyword>MATCH-AUTOLABEL</amkeyword></term>
  <listitem>
<para>Default:
<amdefault><amkeyword>MATCH-AUTOLABEL</amkeyword></amdefault>.
The tape label constraint regular expression.
All tape labels generated (see
<manref name="amlabel" vol="8"/>)
and used by this configuration must match the regular expression.
All <amkeyword>autolabel</amkeyword> variable can be used.
The keywork <amkeyword>MATCH-AUTOLABEL</amkeyword> use the autolabel template
as expression.</para>
<para>If multiple configurations are run from the same tape server host,
it is helpful to set their labels to different strings
(for example, &quot;DAILY[0-9][0-9]*&quot; vs.
&quot;ARCHIVE[0-9][0-9]*&quot;)
to avoid overwriting each other's tapes.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>label-new-tapes</amkeyword>
        <amtype>string</amtype></term>
  <listitem>
    <para>Deprecated, use <amkeyword>autolabel</amkeyword> option with options <amkeyword>volume-error empty</amkeyword> to get equivalent behavior.</para>
    <para>Default: not set.
When set, this directive will cause Amanda to automatically write an Amanda
tape label to any blank tape she encounters.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>logdir</amkeyword> <amtype>string</amtype></term>
  <listitem>
<para>Default:
<amdefault>&quot;/usr/adm/amanda&quot;</amdefault>.
The directory for the
<command>amdump</command>
and
<emphasis remap='B'>log</emphasis>
files.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>mailer</amkeyword> <amtype>string</amtype></term>
  <listitem>
<para>Default found by configure. A mail program that can send mail with '<emphasis remap='I'>MAILER -s "subject" user &lt; message_file</emphasis>'.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>mailto</amkeyword> <amtype>string</amtype></term>
  <listitem>
<para>Default: none.
A space separated list of recipients for mail reports.  If not specified, amdump will not send any mail.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>maxdumps</amkeyword> <amtype>int</amtype></term>
  <listitem>
<para>Default:
<amdefault>1</amdefault>.
The maximum number of backups from a single host that Amanda will
attempt to run in parallel. See also the
<emphasis remap='B'>inparallel</emphasis>
option.</para>

<para>Note that this parameter may also be set in a specific
<amkeyword>dumptype</amkeyword>
(see below).
This value sets the default for all
<amkeyword>dumptype</amkeyword>s
so must appear in
<emphasis remap='B'>amanda.conf</emphasis>
before any
<amkeyword>dumptype</amkeyword>s
are defined.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>maxdumpsize</amkeyword> <amtype>int</amtype></term>
  <listitem>
<para>Default:
<amdefault><amkeyword>runtapes</amkeyword>*<amkeyword>tape-length</amkeyword></amdefault>.
Maximum number of bytes the planner will schedule for a run.</para>
<para>The default unit is Kbytes if it is not specified.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>max-dle-by-volume</amkeyword> <amtype>int</amtype></term>
  <listitem>
<para>Default:
<amdefault>1000000000</amdefault>.
The maximum number of dle written to a single volume.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>meta-autolabel</amkeyword>
        <amtype>string</amtype></term>
  <listitem>
<para>Default: not set. When set and if the changer support meta-label, this directive will cause Amanda to automatically add a meta-label to a meta-volume.</para>
<para>A meta-volume is a containers that contains many volumes, eg. a removable
hard-disk for use with chg-disk, each hard disk have many slots (volume).
The meta-label is the label to put on the meta-volume.</para>
<para>When using this directive, specify the template for new meta
labels. The template can contains many variables that are substituted by their
values:
<programlisting>
    $c : config name
    $o : org configuration
    $r : storage name
</programlisting></para>
<para>The template can contain some number of contiguous '%'
characters, which will be replaced with a generated number (000-999),
or some number of contiguous '!', which will be replaced with a generated
letter sequence (AAA-ZZZ).
Be sure to specify enough '%' characters that you do not run out of meta
labels.
Example:
<markup>&quot;DailySet1-%%%&quot;</markup>,
<markup>&quot;DailySet1-!!!&quot;</markup>,
<markup>&quot;$o-%%%&quot;</markup>,
<markup>&quot;$o-!!!&quot;</markup>,
<markup>&quot;$c-!!!&quot;</markup>,
</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>netusage</amkeyword> <amtype>int</amtype></term>
  <listitem>
<para>Default:
<amdefault>80000 Kbps</amdefault>.
The maximum network bandwidth allocated to Amanda, in Kbytes per second.
See also the
<emphasis remap='B'>interface</emphasis>
section.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>org</amkeyword> <amtype>string</amtype></term>
  <listitem>
<para>Default:
<amdefault>"daily"</amdefault>.
A descriptive name for the configuration.
This string appears in the Subject line of mail reports.
Each Amanda configuration should have a different string to keep
mail reports distinct.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>printer</amkeyword> <amtype>string</amtype></term>
  <listitem>
<para>Printer to use when doing tape labels.
See the
<amkeyword>lbl-templ</amkeyword>&nbsp;<amkeyword>tapetype</amkeyword>
option.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>property</amkeyword> [<amkeyword>append</amkeyword>] <amtype>string</amtype> <amtype>string</amtype>+</term>
  <listitem>
<para>These options can set various properties, they can be used by third
 party software to store information in the configuration file.
Both strings are quoted; the first string contains the name of
the property to set, and the others contains its values.
<amkeyword>append</amkeyword> keyword append the values to the list of values for that property.
</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>recovery-limit</amkeyword> [ <amtype>string</amtype> | <amkeyword>same-host</amkeyword> | <amkeyword>server</amkeyword>]</term>
  <listitem>
<para>Default: none (no limitations).  This parameter limits the hosts
    that may do recoveries.  Hosts are identified by their authenticated
    peer name, as described in <manref name="amanda-auth" vol="7"/>; if this is
    not available and the recovery-limit parameter is present, recovery will be
    denied.  The arguments to the parameter are strings giving host match
    expressions (see <manref name="amanda-match" vol="7"/>) or the special
    keywords <amkeyword>same-host</amkeyword> or <amkeyword>server</amkeyword>.
    The <amkeyword>same-host</amkeyword> keyword requires an exact
    match to the hostname of the DLE being recovered.
    The <amkeyword>server</amkeyword> keyword require the connection come from
    the fqdn of the server.
    Specifying no arguments at all will disable all
    recoveries from any host.</para>

<para>Note that match expressions can be constructed to be
    forgiving of e.g., fully-qualified vs. unqualified hostnames, but
    <amkeyword>same-host</amkeyword> requires an exact match.</para>

<para>The error messages that appear in amrecover are intentionally vague to
    avoid information leakage.  Consult the amindexd debug log for more details
    on the reasons a recovery was rejected.</para>

<para>Recovery limits can be refined on a per-DLE basis using the dumptype
    parameter of the same name.  Note that the default value will apply to any
    dumpfiles for disks which no longer appear in the disklist; thus leaving the
    global parameter at its default value but setting it for all DLEs is not
    sufficient to maintain secure backups.</para>

  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>report-format</amkeyword> [<amkeyword>append</amkeyword>] <amtype>string</amtype>+</term>
  <listitem>
<para>Default:
<amdefault>Not set</amdefault>. The formats amdump, amflush and amvault use
when invoking amreport.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>report-next-media</amkeyword> <amtype>boolean</amtype></term>
  <listitem>
<para>Default:
<amdefault>True</amdefault> if <amkeyword>max-dle-by-volume</amkeyword>
is not set,
<amdefault>False</amdefault> if it is set.
If the reporter must print the list of media expected for the next run.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>report-use-media</amkeyword> <amtype>boolean</amtype></term>
  <listitem>
<para>Default:
<amdefault>True</amdefault> if <amkeyword>max-dle-by-volume</amkeyword>
is not set,
<amdefault>False</amdefault> if it is set.
If the reporter must print the list of media used in the run.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>req-tries</amkeyword> <amtype>int</amtype></term>
  <listitem>
<para>Default:
<amdefault>3</amdefault>.
How many times the server will resend a REQ packet if it doesn't get the ACK packet.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>reserve</amkeyword> <amtype>int</amtype></term>
  <listitem>
<para>Default:
<amdefault>100</amdefault>.
The part of holding-disk space that should be reserved for incremental
backups if no tape is available, expressed as a percentage of the 
available holding-disk space (0-100).
By default, when there is no tape to write to, degraded mode (incremental) backups 
will be performed to the holding disk. If full backups should also be allowed in this case,
the amount of holding disk space reserved for incrementals should be lowered.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>reserved-tcp-port</amkeyword> <amtype>int</amtype>,<amtype>int</amtype></term>
  <listitem>
<para>Default: --with-low-tcpportrange or
<amdefault>512,1023</amdefault>.
Reserved tcp port that will be used (bsdtcp).
Range is inclusive.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>reserved-udp-port</amkeyword> <amtype>int</amtype>,<amtype>int</amtype></term>
  <listitem>
<para>Default: --with-udpportrange or
<amdefault>512,1023</amdefault>.
Reserved udp port that will be used (bsd, bsdudp).
Range is inclusive.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>runspercycle</amkeyword> <amtype>int</amtype></term>
  <listitem>
<para>Default:
<amdefault>same as dumpcycle</amdefault>.
The number of amdump runs in
<amkeyword>dumpcycle</amkeyword>
days.
A value of 0 means the same value as
<amkeyword>dumpcycle</amkeyword>.
A value of -1 means guess the number of runs from the &tapelist; file,
which is the number of tapes used in the last
<amkeyword>dumpcycle</amkeyword>
days /
<amkeyword>runtapes</amkeyword>.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>runtapes</amkeyword> <amtype>int</amtype></term>
  <listitem>
<para>Default:
<amdefault>1</amdefault>.
The maximum number of tapes used in a single run.
If a tape changer is not configured, this option is not used
and should be commented out of the configuration file.</para>
<para>If a tape changer is configured, this may be set larger than one to
let Amanda write to more than one tape.</para>
<para>Note that this is an upper bound on the number of tapes,
and Amanda may use less.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>send-amreport-on</amkeyword> [ <amkeyword>all</amkeyword> | <amkeyword>strange</amkeyword> | <amkeyword>error</amkeyword> | <amkeyword>never</amkeyword> ]</term>
  <listitem>
<para>Default:
<amkeyword>all</amkeyword>.
Specify which types of messages will trigger an email from amreport. amreport is used by amdump and amflush.</para>
  <!-- .RS -->
    <variablelist remap='TP'>
      <varlistentry>
      <term><amkeyword>all</amkeyword></term>
      <listitem>
<para>Send an email on any message.</para>
      </listitem>
      </varlistentry>
      <varlistentry>
      <term><amkeyword>strange</amkeyword></term>
      <listitem>
<para>Send an email on strange or error message. A strange message occurs when the dump succeeded, but returned one or more errors unknown to Amanda.</para>
      </listitem>
      </varlistentry>
      <varlistentry>
      <term><amkeyword>error</amkeyword></term>
      <listitem>
<para>Send an email only on error messages.</para>
      </listitem>
      </varlistentry>
      <varlistentry>
      <term><amkeyword>never</amkeyword></term>
      <listitem>
<para>Never send an email.</para>
      </listitem>
      </varlistentry>
    </variablelist>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>sort-index</amkeyword> <amtype>boolean</amtype></term>
  <listitem>
<para>Default:
<amdefault>no</amdefault>. Sort all index files, this make amrecover
start faster on big filesystem but it require more processing at backup
time. Changing this setting can sort all index files.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>storage</amkeyword> <amtype>string</amtype>+</term>
  <listitem>
<para>Default: Same as the config name.  The list of storages to use, the dump will go to theses storages.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>active-storage</amkeyword> <amtype>string</amtype>+</term>
  <listitem>
<para>Default: Same as the configured <amkeyword>storage</amkeyword> setting
and the -ostorage= command line setting.  The list of storages where a dump
can be put.  amdump keep the dump in holding disk if the storage is not also
listed in <amkeyword>storage</amkeyword></para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>tapebufs</amkeyword> <amtype>int</amtype></term>
  <listitem>
<para>Default:
<amdefault>20</amdefault>.
This option is deprecated; use
the <amkeyword>device-output-buffer-size</amkeyword> directive
instead. <amkeyword>tapebufs</amkeyword> works the same way,
but the number specified is multiplied by the device blocksize prior
to use.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>tapecycle</amkeyword> <amtype>int</amtype></term>
  <listitem>
<para>Default:
<amdefault>15 tapes</amdefault>.

Specifies the number of "active" volumes - volumes that Amanda will not
overwrite.  While Amanda is always willing to write to a new volume, it refuses
to overwrite a volume unless at least '<amkeyword>tapecycle</amkeyword> -1'
volumes have been written since.</para>

<para> It is considered good administrative practice to set the
<amkeyword>tapecycle</amkeyword> parameter slightly lower than the actual
number of tapes in use. This allows the administrator to more easily cope
with damaged or misplaced tapes or schedule adjustments that call for
slight adjustments in the rotation order.</para>

<para>Note: Amanda is commonly misconfigured with <amkeyword>tapecycle</amkeyword>
equal to the number of tapes per <amkeyword>dumpcycle</amkeyword>.  In this
misconfiguration, amanda may erase a full dump before a new one is
completed.  Recovery is then impossible. The
<amkeyword>tapecycle</amkeyword> must be at least one tape larger than the
number of tapes per dumpcycle.</para>

<para>
The number of tapes per dumpcycle is calculated by multiplying the number of
&amdump; runs per dump cycle <amkeyword>runspercycle</amkeyword> (the
number of &amdump; runs per dump cycle) and <emphasis
remap='B'>runtapes</emphasis> (the number of tapes used per run). Typically
<amkeyword>tapecycle</amkeyword> is set to two or four times the tapes
per dumpcycle.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>tapedev</amkeyword> <amtype>string</amtype></term>
  <listitem>
<para>Default:
<amdefault>&quot;null:&quot;</amdefault>.
This parameter can either specify a device (explicitly or by referencing a device definition - see <manref name="amanda-devices" vol="7" />)
or a tape changer (explicitly or by referencing a device definition - see <manref name="amanda-changers" vol="7" />).</para>

  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>tapelist</amkeyword> <amtype>string</amtype></term>
  <listitem>
<para>Default:
<amdefault>&quot;tapelist&quot;</amdefault>.
The file name for the active &tapelist;.
Amanda maintains this file with information about the active set of tapes.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>taperalgo</amkeyword> [ <amkeyword>first</amkeyword> | <amkeyword>firstfit</amkeyword> | <amkeyword>largest</amkeyword> | <amkeyword>largestfit</amkeyword> | <amkeyword>smallest</amkeyword> | <amkeyword>last</amkeyword> ]</term>
  <listitem>
<para>Default:
<amkeyword>first</amkeyword>.
The algorithm used to choose which dump image to send to the taper.</para>
  <!-- .RS -->
    <variablelist remap='TP'>
      <varlistentry>
      <term><amkeyword>first</amkeyword></term>
      <listitem>
<para>First in, first out.</para>
      </listitem>
      </varlistentry>
      <varlistentry>
      <term><amkeyword>firstfit</amkeyword></term>
      <listitem>
<para>The first dump image that will fit on the current tape.</para>
      </listitem>
      </varlistentry>
      <varlistentry>
      <term><amkeyword>largest</amkeyword></term>
      <listitem>
<para>The largest dump image.</para>
      </listitem>
      </varlistentry>
      <varlistentry>
      <term><amkeyword>largestfit</amkeyword></term>
      <listitem>
<para>The largest dump image that will fit on the current tape.</para>
      </listitem>
      </varlistentry>
      <varlistentry>
      <term><amkeyword>smallest</amkeyword></term>
      <listitem>
<para>The smallest dump image.</para>
      </listitem>
      </varlistentry>
      <varlistentry>
      <term><amkeyword>last</amkeyword></term>
      <listitem>
<para>Last in, first out.</para>
      </listitem>
      </varlistentry>
    </variablelist>
  </listitem>
  </varlistentry>

<!-- the entity '#215' below is U+00D7 MULTIPLICATION SIGN; the 'times' entity
     is not as portable as one might hope. -->
  <varlistentry>
  <term><amkeyword>taperflush</amkeyword> <amtype>int</amtype></term>
  <listitem>
<para>Default: <amdefault>0</amdefault>.
  At the end of a run, Amanda will start a new tape to flush remaining
  data if there is more data on the holding disk at the end of a run
  than this setting allows; the amount is specified as a percentage of
  the capacity of a single
  volume. In other words, at the end of a run, Amanda will begin
  a new tape if the 
  inequality <inlineequation><mathphrase>h &gt; t &#215;
  f</mathphrase></inlineequation> is satisfied,
  where <mathphrase>h</mathphrase> is the amount of data remaining on the
  holding disk from this or previous runs, <mathphrase>t</mathphrase>
  is the capacity of a volume,
  and <mathphrase>f</mathphrase> is this parameter, expressed as a
  percentage.  This parameter may be greater than 100%.</para>
<para> The value of this parameter may not exceed that of
  the <amkeyword>flush-threshold-scheduled</amkeyword>
  parameter.; <amkeyword>autoflush</amkeyword> must be set to 'yes' if
 <amkeyword>taperflush</amkeyword> is greater than 0.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>taperscan</amkeyword> <amtype>string</amtype></term>
  <listitem>
<para>Default: traditional.  The taperscan module amanda should use to find a tape
to write to. See <manref name="amanda-taperscan" vol="7" /> for a list of
modules.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>taper-parallel-write</amkeyword> <amtype>int</amtype></term>
  <listitem>
    <para>Default: <amdefault>1</amdefault>.
Amanda can write simultaneously up to that number of volume at any given
time. The changer must have as many drives.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>tapetype</amkeyword> <amtype>string</amtype></term>
  <listitem>
<para>Default:
<amdefault>no default</amdefault>.
The type of tape drive associated with
<amkeyword>tapedev</amkeyword>
or
<amkeyword>tpchanger</amkeyword>.
This refers to one of the defined <amkeyword>tapetype</amkeyword>s
in the config file (see below), which specify various tape parameters,
like the
<amkeyword>length</amkeyword>,
<amkeyword>filemark</amkeyword>
size, and
<amkeyword>speed</amkeyword>
of the tape media and device.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>tmpdir</amkeyword> <amtype>string</amtype></term>
  <listitem>
<para>Default: none (system default).  Set it to a directory with lots of free
space if sort in amindexd fail with 'No space left on device'.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>tpchanger</amkeyword> <amtype>string</amtype></term>
  <listitem>
<para>Default: not set.  (deprecated) The tape changer to use.  In most cases, only one of
<amkeyword>tpchanger</amkeyword> or <amkeyword>tapedev</amkeyword> is
specified, although for backward compatibility both may be specified if
<amkeyword>tpchanger</amkeyword> gives the name of an old changer script.
See <manref name="amanda-changers" vol="7" /> for more information on
configuring changers.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>unreserved-tcp-port</amkeyword> <amtype>int</amtype>,<amtype>int</amtype></term>
  <listitem>
<para>Default: --with-tcpportrange or
<amdefault>1024,65535</amdefault>.
Unreserved tcp port that will be used (bsd, bsdudp).
Range is inclusive.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>usetimestamps</amkeyword>
	<amtype>bool</amtype></term>
    <listitem>
      <para>Default: <amkeyword>Yes</amkeyword>. Deprecated, the value is
always <amkeyword>Yes</amkeyword>.
This option allows Amanda to track multiple runs per calendar day.
      </para>
    </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>vault-storage</amkeyword> <amtype>string</amtype>+</term>
  <listitem>
<para>Default: not set.  The list of storages to vault to.</para>
<para>After writing to the storages listed in the
<amkeyword>storage</amkeyword> parameter, <command>amdump</command> will
automatically write all pending dumps to the vault storage(s).  (These
dumps are queued for vaulting based on the <amkeyword>vault</amkeyword>
option specified in the definition section for the primary storage and the
<amkeyword>dump-selection</amkeyword> option specified on the vault
storage.)</para>
<para>(<command>amvault</command> also uses the first storage in the
<amkeyword>vault-storage</amkeyword> list as its default
destination storage.)</para>
  </listitem>
  </varlistentry>

</variablelist>
</refsect1>

<refsect1><title>HOLDINGDISK SECTION</title>
<para>The <emphasis remap='B'>amanda.conf</emphasis>
file may define one or more holding disks used as buffers to hold
backup images before they are written to tape.
The syntax is:</para>

<programlisting>
define holdingdisk <emphasis remap='I'>name</emphasis> {
    <emphasis remap='I'>holdingdisk-option</emphasis> <emphasis remap='I'>holdingdisk-value</emphasis>
    <literal>...</literal>
}
</programlisting>

<para>The { must appear at the end of a line, and the } on its own line.</para>
<para><emphasis remap='I'>Name</emphasis>
is a logical name for this holding disk.</para>

<para>The options and values are:</para>

<variablelist remap='TP'>
  <varlistentry>
  <term><amkeyword>comment</amkeyword> <amtype>string</amtype></term>
  <listitem>
<para>Default: not set.
A comment string describing this holding disk.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>chunksize</amkeyword> <amtype>int</amtype></term>
  <listitem>
<para>Default:
<amdefault>1 Gb</amdefault>.
Holding disk chunk size. Dumps larger than the specified size will be stored in multiple
holding disk files. The size of each chunk will not exceed the specified value.
However, even though dump images are split in the holding disk, they are concatenated as
they are written to tape, so each dump image still corresponds to a single continuous
tape section.</para>
<para>The default unit is Kbytes if it is not specified.</para>

<para>If 0 is specified, Amanda will create holding disk chunks as large as
((INT_MAX/1024)-64) Kbytes.</para>

<para>Each holding disk chunk includes a 32 Kbyte header, so the minimum
chunk size is 64 Kbytes (but that would be really silly).</para>

<para>Operating systems that are limited to a maximum file size of 2 Gbytes
actually cannot handle files that large.
They must be at least one byte less than 2 Gbytes.
Since Amanda works with 32 Kbyte blocks, and
to handle the final read at the end of the chunk, the chunk size
should be at least 64 Kbytes (2 * 32 Kbytes) smaller than the maximum
file size, e.g. 2047 Mbytes.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>directory</amkeyword> <amtype>string</amtype></term>
  <listitem>
<para>Default:
<amdefault>&quot;/dumps/amanda&quot;</amdefault>.
The path to this holding area.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>use</amkeyword> <amtype>int</amtype></term>
  <listitem>
<para>Default:
<amdefault>0 Gb</amdefault>.
Amount of space that can be used in this holding disk area.
If the value is zero, all available space on the file system is used.
If the value is negative, Amanda will use all available space minus that value.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>chunksize</amkeyword> <amtype>int</amtype></term>
  <listitem>
<para>Default:
<amdefault>1 Gb</amdefault>.
Holding disk chunk size. Dumps larger than the specified size will be stored in multiple
holding disk files. The size of each chunk will not exceed the specified value.
However, even though dump images are split in the holding disk, they are concatenated as 
they are written to tape, so each dump image still corresponds to a single continuous 
tape section.</para>
<para>The default unit is Kbytes if it is not specified.</para>

<para>If 0 is specified, Amanda will create holding disk chunks as large as
((INT_MAX/1024)-64) Kbytes.</para>

<para>Each holding disk chunk includes a 32 Kbyte header, so the minimum
chunk size is 64 Kbytes (but that would be really silly).</para>

<para>Operating systems that are limited to a maximum file size of 2 Gbytes
actually cannot handle files that large.
They must be at least one byte less than 2 Gbytes.
Since Amanda works with 32 Kbyte blocks, and
to handle the final read at the end of the chunk, the chunk size
should be at least 64 Kbytes (2 * 32 Kbytes) smaller than the maximum
file size, e.g. 2047 Mbytes.</para>
  </listitem>
  </varlistentry>

</variablelist>
</refsect1>

<refsect1><title>DUMPTYPE SECTION</title>
<para>The &amconf; file may define multiple sets of backup options 
and refer to them by name from the &disklist; file.
For instance, one set of options might be defined for file systems
that can benefit from high compression, another set that does not compress well,
another set for file systems that should always get a full backup and so on.</para>

<para>A set of backup options are entered in a
<amkeyword>dumptype</amkeyword>
section, which looks like this:</para>

<programlisting>
define dumptype "<emphasis remap='I'>name</emphasis>" {
    <emphasis remap='I'>dumptype-option</emphasis> <emphasis remap='I'>dumptype-value</emphasis>
    <literal>...</literal>
}
</programlisting>

<para>The { must appear at the end of a line, and the } on its own line.</para>
<para><emphasis remap='I'>Name</emphasis>
is the name of this set of backup options.
It is referenced from the &disklist; file.</para>

<para>Some of the options in a
<amkeyword>dumptype</amkeyword>
section are the same as those in the main part of &amconf;.
The main option value is used to set the default for all
<amkeyword>dumptype</amkeyword>
sections. For instance, setting
<amkeyword>dumpcycle</amkeyword>
to 50 in the main part of the config file causes all following
<amkeyword>dumptype</amkeyword>
sections to start with that value,
but the value may be changed on a section by section basis.
Changes to variables in the main part of the config file must be
done before (earlier in the file) any
<amkeyword>dumptype</amkeyword>s
are defined.</para>

<para>The dumptype options and values are:</para>

<variablelist remap='TP'>
  <varlistentry>
  <term><amkeyword>allow-split</amkeyword> <amtype>bool</amtype></term>
  <listitem>
<para>Default: true.
If true, then dumps with this dumptype can be split on the storage media.  If false, then
the dump will be written in a single file on the media.  See "Dump Splitting Configuration"
below.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>application</amkeyword> <amtype>string</amtype></term>
  <listitem>
<para>No default. Must be the name of an application if <emphasis>program</emphasis> is set to <emphasis remap='I'>APPLICATION</emphasis>. See APPLICATION SECTION below.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>auth</amkeyword> <amtype>string</amtype></term>
  <listitem>
<para>Default:
<amdefault>&quot;bsdtcp&quot;</amdefault>.
Type of authorization to perform between tape server and backup client hosts.  See <manref name="amanda-auth" vol="7"/> for more detail.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>amandad-path</amkeyword> <amtype>string</amtype></term>
  <listitem>
<para>Default:
<amdefault>&quot;$libexec/amandad&quot;</amdefault>.
Specify the amandad path of the client, only use with rsh/ssh authentification.
</para>
  </listitem>
  </varlistentry>

<!-- bumping parameters yanked from the global section above -->

  <varlistentry>
  <term><amkeyword>bumpdays</amkeyword> <amtype>int</amtype></term>
  <listitem>
<para>Default:
<amdefault>2 days</amdefault>.
To insure redundancy in the dumps, Amanda keeps filesystems at the
same incremental level for at least
<amkeyword>bumpdays</amkeyword>
days, even if the other bump threshold criteria are met.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>bumpmult</amkeyword> <amtype>float</amtype></term>
  <listitem>
<para>Default:
<amdefault>1.5</amdefault>.
The bump size multiplier.
Amanda multiplies
<amkeyword>bumpsize</amkeyword>
by this factor for each level.
This prevents active filesystems from
bumping too much by making it harder to bump to the next level.
For example, with the default
<amkeyword>bumpsize</amkeyword>
and
<amkeyword>bumpmult</amkeyword>
set to 2.0, the bump threshold will be 10 Mbytes for level one, 20
Mbytes for level two, 40 Mbytes for level three, and so on.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>bumppercent</amkeyword> <amtype>int</amtype></term>
  <listitem>
<para>Default:
<amdefault>0</amdefault>.
The minimum savings required to trigger an automatic
bump from one incremental level to the next, expressed as percentage of the
current size of the DLE (size of current level 0).
If Amanda determines that the next higher backup level
will be this much smaller than the current level,
it will do the next level.
</para>
<para>
If this parameter is set to 0, the value of the
parameter <emphasis>bumpsize</emphasis> is used to trigger bumping.
</para>
<para>
See also the options
<amkeyword>bumpsize</amkeyword>,
<amkeyword>bumpmult</amkeyword> and
<amkeyword>bumpdays</amkeyword>.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>bumpsize</amkeyword> <amtype>int</amtype></term>
  <listitem>
<para>Default:
<amdefault>10 Mbytes</amdefault>.
The minimum savings required to trigger an automatic
bump from one incremental level to the next, expressed as size.
If Amanda determines that the next higher backup level
will be this much smaller than the current level,
it will do the next level.
The value of this parameter is used only if the parameter
<emphasis>bumppercent</emphasis> is set to 0.
</para>
<para>The default unit is Kbytes if it is not specified.</para>
<para>
See also the options
<amkeyword>bumppercent</amkeyword>,
<amkeyword>bumpmult</amkeyword> and
<amkeyword>bumpdays</amkeyword>.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>client-port</amkeyword> [ <amtype>int</amtype> | <amtype>string</amtype> ]</term>
  <listitem>
<para>Default:
<amdefault>&quot;amanda&quot;</amdefault>.
Specifies the port to connect to on the client.  It can be a service name or a numeric port number.
</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>client-custom-compress</amkeyword> <amtype>string</amtype></term>
  <listitem>
<para>Default: none.
    The program to use to perform compression/decompression on the client; used with
"compress client custom".  Must not contain whitespace.  Must accept -d to uncompress.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>client-decrypt-option</amkeyword> <amtype>string</amtype></term>
  <listitem>
<para>Default: -d.
The option that can be passed to client-encrypt to make it decrypt instead.
Must not contain whitespace.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>client-encrypt</amkeyword> <amtype>string</amtype></term>
  <listitem>
<para>Default: none.
The program to use to perform encryption/decryption on the client; used with
"encrypt client".  Must not contain whitespace.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>client-username</amkeyword> <amtype>string</amtype></term>
  <listitem>
<para>Default:
<amdefault>CLIENT_LOGIN</amdefault>.
Specify the username to connect on the client, only use with rsh/ssh authentification.
</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>comment</amkeyword> <amtype>string</amtype></term>
  <listitem>
<para>Default: not set.
A comment string describing this set of backup options.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>comprate</amkeyword> <amtype>float</amtype> [, <amtype>float</amtype> ]</term>
  <listitem>
<para>Default:
<amdefault>0.50, 0.50</amdefault>.
The expected full and incremental compression factor for dumps.
It is only used if Amanda does not have any history information on
compression rates for a filesystem, so should not usually need to be set.
However, it may be useful for the first time a very large filesystem that 
compresses very little is backed up.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>compress</amkeyword> [ <amkeyword>none</amkeyword> | <amkeyword>client</amkeyword> | <amkeyword>server</amkeyword> ] [ <amkeyword>best</amkeyword> | <amkeyword>fast</amkeyword> | <amkeyword>custom</amkeyword> ]</term>
  <listitem>
<para>Default:
<amkeyword>client fast</amkeyword>.
If Amanda does compression of the backup images, it can do so either on the backup client 
host before it crosses the network or on the tape server host as it goes from the
network into the holding disk or to tape.  Which place to do compression (if at all) depends on how well the
dump image usually compresses, the speed and load on the client or server, network capacity, 
holding disk capacity, availability of tape hardware compression, etc.</para>

<para>For either type of compression, Amanda also allows the selection
of three styles of compression.
<amkeyword>best</amkeyword>
is the best compression available, often at the expense of CPU overhead.
<amkeyword>fast</amkeyword>
is often not as good a compression as
<amkeyword>best</amkeyword>,
but usually less CPU overhead. Or to specify <amkeyword>custom</amkeyword>
to use your own compression method. (See dumptype custom-compress in example/amanda.conf for reference)</para>

<para>So the <amkeyword>compress</amkeyword> options line may be one of:</para>

<variablelist remap='TP'>
  <varlistentry>
    <term>compress none</term><listitem><para/></listitem>
  </varlistentry>
  <varlistentry>
    <term>compress client fast</term><listitem><para/></listitem>
  </varlistentry>
  <varlistentry>
    <term>compress client best</term><listitem><para/></listitem>
  </varlistentry>
  <varlistentry>
    <term>compress client custom</term>
    <listitem>
      <para>Specify <amkeyword>client-custom-compress</amkeyword> &quot;PROG&quot;</para>
      <para>PROG must not contain white space and it must accept -d for uncompress.</para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>compress server fast</term><listitem><para/></listitem>
  </varlistentry>
  <varlistentry>
    <term>compress server best</term><listitem><para/></listitem>
  </varlistentry>
  <varlistentry>
    <term>compress server custom</term>
    <listitem>
      <para>Specify <amkeyword>server-custom-compress</amkeyword> &quot;PROG&quot;</para>
      <para>PROG must not contain white space and it must accept -d for uncompress.</para>
    </listitem>
  </varlistentry>
</variablelist>
<para>Note that some tape devices do compression and this option has nothing
to do with whether that is used. If hardware compression is used (usually via a particular tape device name
or <emphasis remap='B'>mt</emphasis> option), Amanda (software) compression should be disabled.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>dumpcycle</amkeyword> <amtype>int</amtype></term>
  <listitem>
<para>Default: <amdefault>10 days</amdefault>.
The number of days in the backup cycle. Each disk using this set of options will get a full 
backup at least this of
ten. Setting this to zero tries to do a full backup each run.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
      <term><amkeyword>dump-limit</amkeyword>
	    [ <amkeyword>server</amkeyword> | <amkeyword>same-host</amkeyword> ]*</term>
  <listitem>

<para>Default: <amkeyword>server</amkeyword>. Specify which host can initiate
 a backup of the dle.  With <amkeyword>server</amkeyword>, the server
 can initiate a backup with the <command>amdump</command> command.
 With <amkeyword>same-host</amkeyword>, the client can initiate a backup with
 the <command>amdump_client</command> command.</para>

  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>encrypt</amkeyword> [ <amkeyword>none</amkeyword> | <amkeyword>client</amkeyword> | <amkeyword>server</amkeyword> ]</term>
  <listitem>
<para>Default: not set.
To encrypt backup images, it can do so either on the backup client host before it crosses the network or on the tape
server host as it goes from the network into the holding disk or to tape.</para>

<para>So the <amkeyword>encrypt</amkeyword> options line may be one
	    of:</para>

<variablelist remap='TP'>
  <varlistentry>
    <term>encrypt none</term><listitem><para/></listitem>
  </varlistentry>
  <varlistentry>
    <term>encrypt client</term>
    <listitem>
      <para>Specify client-encrypt &quot;PROG&quot;</para>
      <para>PROG must not contain white space.</para>
      <para>Specify client-decrypt-option &quot;decryption-parameter&quot; Default: &quot;-d&quot;</para>
      <para>decryption-parameter must not contain white space.</para>
      <para>(See dumptype client-encrypt-nocomp in example/amanda.conf for reference)</para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>encrypt server</term>
    <listitem>
      <para>Specify server-encrypt &quot;PROG&quot;</para>
      <para>PROG must not contain white space.</para>
      <para>Specify server-decrypt-option &quot;decryption-parameter&quot; Default: &quot;-d&quot;</para>
      <para>decryption-parameter must not contain white space.</para>
      <para>(See dumptype server-encrypt-fast in example/amanda.conf for reference)</para>
    </listitem>
  </varlistentry>
</variablelist>
<para>Note that current logic assumes compression then encryption during
backup(thus decrypt then uncompress during restore). So specifying
client-encryption AND server-compression is not supported.
<emphasis remap='I'>amcrypt</emphasis> which is a wrapper of
	    <emphasis remap='I'>aespipe</emphasis> is provided as a reference
		symmetric encryption program.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>estimate</amkeyword> [ <amkeyword>client</amkeyword> | <amkeyword>calcsize</amkeyword> | <amkeyword>server</amkeyword> ]+</term>
  <listitem>
<para>Default: <amkeyword>client</amkeyword>.
Determine the way Amanda estimates the size of each DLE before beginning a backup.  This is a list of acceptable estimate methods, and Amanda applies the first method supported by the application.  The methods are:</para>
<variablelist remap='TP'>
  <varlistentry>
    <term>client</term>
    <listitem>
      <para>Use the same program as the dumping program. This is the most
	    accurate method to do estimates, but it can take a long time.</para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>calcsize</term>
    <listitem>
      <para>Use a faster program to do estimates, but the result is less
      accurate.</para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>server</term>
    <listitem>
      <para>Use only statistics from the previous few runs to give an estimate.
            This very quick, but the result is not accurate if your disk
            usage changes from day to day.  If this method is specified, but the
	    server does not have enough data to make an estimate, then the option
	    is internally moved to the end of the list, thereby preferring 'client'
	    or 'calcsize' in this case.</para>
    </listitem>
  </varlistentry>
</variablelist>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>exclude</amkeyword> [ <amkeyword>list</amkeyword> | <amkeyword>file</amkeyword> ][[<amkeyword>optional</amkeyword>][<amkeyword>append</amkeyword>][ <amtype>string</amtype> ]+]</term>
  <listitem>
<para>Default:
<amkeyword>file</amkeyword>.  Exclude is the opposite of
<amkeyword>include</amkeyword> and specifies files that will be excluded from
the backup.  The format of the exclude expressions depends on the application,
and some applications do not support excluding files at all.</para>

<para>There are two exclude parameters,
<amkeyword>exclude</amkeyword> <amkeyword>file</amkeyword>
and
<amkeyword>exclude</amkeyword> <amkeyword>list.</amkeyword>
With
<amkeyword>exclude</amkeyword> <amkeyword>file</amkeyword>, the
<amtype>string</amtype>
is an exclude expression. With
<amkeyword>exclude</amkeyword> <amkeyword>list</amkeyword>
, the
<amtype>string</amtype>
is a file name on the client containing &gnutar; exclude expressions.
The path to the specified exclude list file, if present (see description of
'optional' below), must be readable by the Amanda user.</para>

<para>All exclude expressions are concatenated in one file and passed to the
application as an <option>--exclude-from</option> argument.</para>

<para>For &gnutar;, exclude expressions must always be specified as relative to the
top-level directory of the DLE, and must start with "./".  See the manpages for individual
applications for more information on supported exclude expressions.</para>

<para>With the
<amkeyword>append</amkeyword> keyword, the
<amtype>string</amtype> is appended to the current list, without it, the
<amtype>string</amtype> overwrites the list.</para>

<para>If <amkeyword>optional</amkeyword>
is specified for <amkeyword>exclude</amkeyword> <amkeyword>list</amkeyword>,
then amcheck will not complain if the file doesn't exist or is not readable.</para>

<para>For <amkeyword>exclude</amkeyword> <amkeyword>list</amkeyword>,
if the file name is relative, the disk name being backed up is prepended.
So if this is entered:</para>

<programlisting>
    exclude list &quot;.amanda.excludes&quot;
</programlisting>

<para>the actual file used would be
<filename>/var/.amanda.excludes</filename>
for a backup of <filename>/var</filename>,
<filename>/usr/local/.amanda.excludes</filename> for a backup of
<filename>/usr/local</filename>, and so on.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>fallback-splitsize</amkeyword> <amtype>int</amtype></term>
  <listitem>
      <para>Deprecated.  See "Dump Splitting Configuration" below.</para>
<para>Default:
<amdefault>10M</amdefault>.
This specifies the part size used when no <amkeyword>split-diskbuffer</amkeyword> is specified, or when it is too small or does not exist,
and thus the maximum amount of memory consumed for in-memory splitting.
The default unit is Kbytes if it is not specified.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>holdingdisk</amkeyword> [ <amkeyword>never</amkeyword> | <amkeyword>auto</amkeyword> | <amkeyword>required</amkeyword> ]</term>
  <listitem>
<para>Default:
<amkeyword>auto</amkeyword>.
Whether a holding disk should be used for these backups or whether they should go directly to tape.
If the holding disk is a portion of another file system that Amanda
is backing up, that file system should refer to a dumptype with
<amkeyword>holdingdisk</amkeyword>
set to
<emphasis remap='I'>never</emphasis>
to avoid backing up the holding disk into itself.</para>

  <variablelist remap='TP'>
  <varlistentry>
  <term><amkeyword>never</amkeyword>|no|false|off</term>
  <listitem>
  <para>Never use a holdingdisk, the dump will always go directly to tape. There will be no dump if you have a tape error.</para>
  </listitem>
  </varlistentry>
  <varlistentry>
  <term><amkeyword>auto</amkeyword>|yes|true|on</term>
  <listitem>
  <para>Use the holding disk, unless there is a problem with the holding disk, the dump won't fit there or the medium doesn't require spooling (e.g., VFS device)</para>
  </listitem>
  </varlistentry>
  <varlistentry>
  <term><amkeyword>required</amkeyword></term>
  <listitem>
  <para>Always dump to holdingdisk, never directly to tape. There will be no dump if it doesn't fit on holdingdisk</para>
  </listitem>
  </varlistentry>
  </variablelist>

  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>ignore</amkeyword> <amtype>boolean</amtype></term>
  <listitem>
<para>Default:
<amkeyword>no</amkeyword>.
Whether disks associated with this backup type should be backed up or not.
This option is useful when the
<emphasis remap='I'>disklist</emphasis>
file is shared among several configurations,
some of which should not back up all the listed file systems.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>include</amkeyword> [ <amkeyword>list</amkeyword> | <amkeyword>file</amkeyword> ][[<amkeyword>optional</amkeyword>][<amkeyword>append</amkeyword>][ <amtype>string</amtype> ]+]</term>
  <listitem>
<para>Default:
<amkeyword>file</amkeyword>
&quot;.&quot;.
There are two include lists,
<amkeyword>include file</amkeyword>
and
<amkeyword>include list.</amkeyword>
With
<amkeyword>include file</amkeyword>
, the
<amtype>string</amtype>
is a glob expression. With
<amkeyword>include list</amkeyword>
, the
<amtype>string</amtype>
is a file name on the client containing glob expressions.</para>

<para>All include expressions are expanded by Amanda, concatenated in one file and passed to &gnutar; as a
<option>--files-from</option> argument. They must start with &quot;./&quot; and contain no other &quot;/&quot;.</para>

<para>Include expressions must always be specified as relative to the
head directory of the DLE.</para>

<note><para>For globbing to work at all, even the limited single level, 
the top level directory of the DLE must be readable by the Amanda user.</para>
</note>

<para>With the <amkeyword>append</amkeyword> keyword, the
<amtype>string</amtype> is appended to the current list, without it, the
<amtype>string</amtype> overwrites the list.</para>

<para>If
<amkeyword>optional</amkeyword> is specified for
<amkeyword>include list</amkeyword>, then amcheck will not complain if the file 
doesn't exist or is not readable.</para>

<para>For <amkeyword>include list</amkeyword>,
If the file name is relative, the disk name being backed up is prepended.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>index</amkeyword> <amtype>boolean</amtype></term>
  <listitem>
<para>Default: <amkeyword>no</amkeyword>.
Whether an index (catalogue) of the backup should be generated and saved in
<amkeyword>indexdir</amkeyword>.
These catalogues are used by the <emphasis remap='B'>amrecover</emphasis> utility.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>kencrypt</amkeyword> <amtype>boolean</amtype></term>
  <listitem>
<para>Default:
<amkeyword>no</amkeyword>.
Whether the backup image should be encrypted by Kerberos as it is sent
across the network from the backup client host to the tape server host.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>maxdumps</amkeyword> <amtype>int</amtype></term>
  <listitem>
<para>Default:
<amdefault>1</amdefault>.
The maximum number of backups from a single host that Amanda will attempt to run in parallel.
See also the main section parameter <amkeyword>inparallel</amkeyword>.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>maxpromoteday</amkeyword> <amtype>int</amtype></term>
  <listitem>
<para>Default:
<amdefault>10000</amdefault>.
The maximum number of day for a promotion, set it 0 if you don't want
promotion, set it to 1 or 2 if your disks get overpromoted.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>max-warnings</amkeyword> <amtype>int</amtype></term>
  <listitem>
<para>Default:
<amdefault>20</amdefault>.
The maximum number of error lines in the report for a dle. A value of '0'
means unlimited. This is useful to reduce the size of the log file and the
size of the report. All errors are put in separate files if a dle have more
errors.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>priority</amkeyword> [ <amkeyword>low</amkeyword> | <amkeyword>medium</amkeyword> | <amkeyword>high</amkeyword> ]</term>
  <listitem>
<para>Default: <amkeyword>medium</amkeyword>.
When there is no tape to write to, Amanda will do incremental backups
in priority order to the holding disk. The priority may be
high (2), medium (1), low (0) or a number of your choice.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>program</amkeyword> [ <amkeyword>&quot;DUMP&quot;</amkeyword> | <amkeyword>&quot;GNUTAR&quot;</amkeyword> | <amkeyword>&quot;APPLICATION&quot;</amkeyword> ]</term>
  <listitem>
<para>Default:
<amdefault>&quot;DUMP&quot;</amdefault>.
The type of backup to perform. Valid values are:</para>
  <!-- .RS -->
    <variablelist remap='TP'>
      <varlistentry>
      <term><amkeyword>&quot;DUMP&quot;</amkeyword></term>
      <listitem>
<para>The native operating system backup program.</para>
      </listitem>
      </varlistentry>
      <varlistentry>
      <term><amkeyword>&quot;GNUTAR&quot;</amkeyword></term>
      <listitem>
<para>To use GNU-tar or to do PC backups using Samba.</para>
      </listitem>
      </varlistentry>
      <varlistentry>
      <term><amkeyword>&quot;APPLICATION&quot;</amkeyword></term>
      <listitem>
<para>To use an application, see the <emphasis>application</emphasis> option.</para>
      </listitem>
      </varlistentry>
    </variablelist>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>property</amkeyword> [<amkeyword>append</amkeyword>] [ <amkeyword>hidden</amkeyword> | <amkeyword>visible</amkeyword> ] <amtype>string</amtype> <amtype>string</amtype>+</term>
  <listitem>
<para>These options can set various properties, they can be used by third
 party software to store information in the configuration file.
Both strings are quoted; the first string contains the name of
the property to set, and the others contains its values.
<amkeyword>append</amkeyword> keyword append the values to the list of values for that property.</para>
<para>With <amkeyword>hidden</amkeyword> (the default), the property are not
put in the amanda dump header and in the log/debug files.  With
<amkeyword>visible</amkeyword>, they are put in the amanda dump header and
in the log/debug files. Use <amkeyword>hidden</amkeyword> if the property
must be kept secret.
</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>record</amkeyword> <amtype>boolean</amtype></term>
  <listitem>
<para>Default:
<amkeyword>yes</amkeyword>.
Whether to ask the backup program to update its database (e.g. <filename>/etc/dumpdates</filename>
for DUMP or <filename>/usr/local/var/amanda/gnutar-lists</filename> for GNUTAR) of time stamps.
This is normally enabled for daily backups and turned off for periodic archival runs.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
      <term><amkeyword>recovery-limit</amkeyword>
	    [ <amkeyword>server</amkeyword> | <amkeyword>same-host</amkeyword> | <amtype>string</amtype> ]*</term>
  <listitem>

<para>Default: global value.  This parameter overrides the global
    <amkeyword>recovery-limit</amkeyword> parameter for DLEs of this
    dumptype.</para>

  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>retry-dump</amkeyword> <amtype>int</amtype></term>
  <listitem>
<para>Default:
<amkeyword>2</amkeyword>.
The number of times a backup is tried in case of failure.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>script</amkeyword> <amtype>string</amtype></term>
  <listitem>
<para>No default. Must be the name of a script. You can have many script. See SCRIPT SECTION below.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>server-custom-compress</amkeyword> <amtype>string</amtype></term>
  <listitem>
<para>Default: none.
    The program to use to perform compression/decompression on the server; used with
"compress server custom".  Must not contain whitespace.  Must accept -d to uncompress.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>server-decrypt-option</amkeyword> <amtype>string</amtype></term>
  <listitem>
<para>Default: -d.
The option that can be passed to server-encrypt to make it decrypt instead.
Must not contain whitespace.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>server-encrypt</amkeyword> <amtype>string</amtype></term>
  <listitem>
<para>Default: none.
The program to use to perform encryption/decryption on the server; used with
"encrypt server".  Must not contain whitespace.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>skip-full</amkeyword> <amtype>boolean</amtype></term>
  <listitem>
<para>Default:
<amkeyword>no</amkeyword>. If <amkeyword>true</amkeyword> and
<emphasis remap='B'>planner</emphasis> has scheduled a full backup, these disks will be skipped, and
full backups should be run off-line on these days. It was reported that Amanda only schedules 
level 1 incrementals in this configuration; this is probably a bug.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>skip-incr</amkeyword> <amtype>boolean</amtype></term>
  <listitem>
<para>Default:
<amkeyword>no</amkeyword>. If <amkeyword>true</amkeyword> and
<emphasis remap='B'>planner</emphasis> has scheduled an incremental backup, these disks will be skipped.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>split-diskbuffer</amkeyword> <amtype>string</amtype></term>
      <para>Deprecated.  See "Dump Splitting Configuration" below.</para>
  <listitem>
<para>Default: not set.
When dumping a split dump in PORT-WRITE mode (usually meaning "no holding disk"), buffer the split chunks to a file in the directory specified by this option.
</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>ssh-keys</amkeyword> <amtype>string</amtype></term>
  <listitem>
<para>Default: not set.
The key file the ssh auth will use, it must be the private key. If this parameter is not specified, then the default ssh key will be used.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>starttime</amkeyword> <amtype>int</amtype></term>
  <listitem>
<para>Default: not set.
Backup of these disks will not start until after this time of day.
The value should be hh*100+mm, e.g. 6:30PM (18:30) would be entered as
<literal>1830</literal>.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>strategy</amkeyword> [ <amkeyword>standard</amkeyword> | <amkeyword>nofull</amkeyword> | <amkeyword>noinc</amkeyword> | <amkeyword>skip</amkeyword> | <amkeyword>incronly</amkeyword> ]</term>
  <listitem>
  <para>Default: <amkeyword>standard</amkeyword>.
  Strategy to use when planning what level of backup to run next. Values are:</para>

  <variablelist remap='TP'>
  <varlistentry>
  <term><amkeyword>standard</amkeyword></term>
  <listitem>
  <para>The standard Amanda schedule.</para>
  </listitem>
  </varlistentry>
  <varlistentry>
  <term><amkeyword>nofull</amkeyword></term>
  <listitem>
  <para>Never do full backups, only level 1 incrementals.</para>
  </listitem>
  </varlistentry>
  <varlistentry>
  <term><amkeyword>noinc</amkeyword></term>
  <listitem>
  <para>Never do incremental backups, only full dumps.</para>
  </listitem>
  </varlistentry>
  <varlistentry>
  <term><amkeyword>skip</amkeyword></term>
  <listitem>
  <para>Treat this DLE as if it doesn't exist (useful to disable DLEs
  when sharing the <emphasis remap='I'>disklist</emphasis> file between
  multiple configurations). Skipped DLEs will not be checked or
  dumped, and will not be matched by disklist expressions.</para>
  </listitem>
  </varlistentry>
  <varlistentry>
  <term><amkeyword>incronly</amkeyword></term>
  <listitem>
  <para>Only do incremental dumps. <command>amadmin force</command> should be used to tell
  Amanda that a full dump has been performed off-line, so that it resets to level 1.</para>
  </listitem>
  </varlistentry>
  </variablelist>
  </listitem>
  </varlistentry>

  <varlistentry>
      <term><amkeyword>tag</amkeyword> [<amkeyword>append</amkeyword>]
	    <amtype>string</amtype>*</term>
  <listitem>

<para>Default: no default. Specify the tags that match the dump-selection
of a storage.</para>

  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>tape-splitsize</amkeyword> <amtype>int</amtype></term>
  <listitem>
      <para>Deprecated.  See "Dump Splitting Configuration" below.</para>
<para>Default: not set.
Split dump file on tape into pieces of a specified size.
The default unit is Kbytes if it is not specified.</para>
  </listitem>
  </varlistentry>

</variablelist>

<para>The following <amkeyword>dumptype</amkeyword> entries are predefined by Amanda:</para>

<programlisting remap='.nf'>
define dumptype "no-compress" {
    compress none
}
define dumptype "compress-fast" {
    compress client fast
}
define dumptype "compress-best" {
    compress client best
}
define dumptype "srvcompress" {
    compress server fast
}
define dumptype "bsd-auth" {
    auth "bsd"
}
define dumptype "bsdtcp-auth" {
    auth "bsdtcp"
}
define dumptype "no-record" {
    record no
}
define dumptype "no-hold" {
    holdingdisk no
}
define dumptype "no-full" {
    skip-full yes
} 
</programlisting>

<para>In addition to options in a
<amkeyword>dumptype</amkeyword>
section, one or more other
<amkeyword>dumptype</amkeyword>
names may be supplied as identifiers, which make this
<amkeyword>dumptype</amkeyword>
inherit options from other previously defined
<amkeyword>dumptype</amkeyword>s.
For instance, two sections might be the same except for the
<amkeyword>record</amkeyword> option:</para>

<programlisting remap='.nf'>
define dumptype "normal" {
    comment &quot;Normal backup, no compression, do indexing&quot;
    no-compress
    index yes
    maxdumps 2
}
define dumptype "testing" {
    comment &quot;Test backup, no compression, do indexing, no recording&quot;
    "normal"
    record no
}
</programlisting>

<para>Amanda provides a
<amkeyword>dumptype</amkeyword>
named
<emphasis remap='I'>global</emphasis>
in the sample
<emphasis remap='B'>amanda.conf</emphasis>
file that all
<amkeyword>dumptype</amkeyword>s
should reference.
This provides an easy place to make changes that will affect every
<amkeyword>dumptype</amkeyword>, although you must be careful
that every dumptype explicitly inherits from the
<emphasis remap='I'>global</emphasis>
dumptype - Amanda does not do so automatically.</para>
</refsect1>

<refsect1><title>TAPETYPE SECTION</title>
<para>The <emphasis remap='B'>amanda.conf</emphasis>
file may define multiple types of tape media and devices.
The information is entered in a
<amkeyword>tapetype</amkeyword>
section, which looks like this in the config file:</para>

<programlisting>
define tapetype "<amtype>name</amtype>" {
    <emphasis remap='I'>tapetype-option</emphasis> <emphasis remap='I'>tapetype-value</emphasis>
    <literal>...</literal>
}
</programlisting>

<para>The { must appear at the end of a line, and the } on its own line.</para>
<para><emphasis remap='I'>Name</emphasis>
is the name of this type of tape medium/device.
It is referenced from the
<amkeyword>tapetype</amkeyword>
option in the main part of the config file.</para>

<para>The tapetype options and values are:</para>
<variablelist remap='TP'>
  <varlistentry>
  <term><amkeyword>blocksize</amkeyword> <amtype>int</amtype></term>
  <listitem>
<para>Default:
<amdefault>32 kbytes</amdefault>.
How much data will be written in each tape record, expressed in kbytes.  This is similar to the <emphasis remap="I">BLOCK_SIZE</emphasis> device property, but if the blocksize is not a multiple of 1024 bytes, then this parameter cannot be used to specify it, and the property must be used instead.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>comment</amkeyword> <amtype>string</amtype></term>
  <listitem>
<para>Default: not set.
A comment string describing this set of tape information.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>filemark</amkeyword> <amtype>int</amtype></term>
  <listitem>
<para>Default:
<amdefault>1 kbytes</amdefault>.
How large a file mark (tape mark) is, measured in kbytes.
If the size is only known in some linear measurement (e.g. inches),
convert it to kbytes using the device density.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>lbl-templ</amkeyword> <amtype>string</amtype></term>
  <listitem>
<para>Default: not set.
A PostScript template file used by
<emphasis remap='B'>amreport</emphasis>
to generate labels. Several sample files are provided with the Amanda sources in the
<emphasis remap='I'>example</emphasis> directory.
See the
<manref name="amreport" vol="8"/>
man page for more information.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>length</amkeyword> <amtype>int</amtype></term>
  <listitem>
<para>Default:
<amdefault>2000 kbytes</amdefault>. How much data will fit on a tape, expressed in kbytes.</para>

<para>Note that this value is only used by Amanda to schedule which backups will be run.
Once the backups start, Amanda will continue to write to a tape until it gets an error, 
regardless of what value is entered for <amkeyword>length</amkeyword>
(but see <manref name="amanda-devices" vol="7" /> for exceptions).
 </para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>part-cache-dir</amkeyword> <amtype>string</amtype></term>
  <listitem>
<para>Default: none.
The directory in which part-cache files can be written when caching on disk.
See "Dump Splitting Configuration" below.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>part-cache-max-size</amkeyword> <amtype>int</amtype></term>
  <listitem>
<para>Default: none.
The maximum part size to use when caching is in effect.  This is used to limit
the part size when disk or memory space for caching is constrained.  This value
must be greater than zero.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>part-cache-type</amkeyword> [ <amkeyword>none</amkeyword> | <amkeyword>disk</amkeyword> | <amkeyword>memory</amkeyword> ] </term>
  <listitem>
<para>Default: none.  When part caching is required, this parameter specifies
the type of caching that will be used.  The options include no caching
(<amkeyword>none</amkeyword>), in which case a failed part will cause the
entire dump to fail; on-disk caching (<amkeyword>disk</amkeyword>), for
which <amkeyword>part-cache-dir</amkeyword> must be set properly; and
in-memory caching (<amkeyword>memory</amkeyword>), which on most systems
severely restrains the size of the part that can be written.  See "Dump
Splitting Configuration" below.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>part-size</amkeyword> <amtype>int</amtype></term>
  <listitem>
<para>If this is set to zero (default), then no splitting will take place,
and the entire dump will fail, if end-of-medium is encountered before
the dump is complete, unless the device property LEOM is true, and the
device can detect EOM.  See "Dump Splitting Configuration" below.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>readblocksize</amkeyword> <amtype>int</amtype></term>
  <listitem>
<para>Default: <amdefault>32 kytes</amdefault>
How much data will be read in each tape record.  This can be used to override a
device's block size for reads only.  This may be useful, for example, in
reading a tape written with a 256k block size when Amanda is configured to use
128k blocks.  This unusual feature is not supported by all operating systems and
tape devices.
</para>
<para>The default unit is Kbytes if it is not specified.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>speed</amkeyword> <amtype>int</amtype></term>
  <listitem>
<para>Default:
<amdefault>200 bps</amdefault>.
How fast the drive will accept data, in bytes per second.
This parameter is NOT currently used by Amanda.</para>
  </listitem>
  </varlistentry>

</variablelist>

<para>In addition to options, another
<amkeyword>tapetype</amkeyword>
name may be supplied as an identifier, which makes this
<amkeyword>tapetype</amkeyword>
inherit options from another
<amkeyword>tapetype</amkeyword>.
For instance, the only difference between a DLT4000 tape drive using
Compact-III tapes and one using Compact-IV tapes is the length of the tape.
So they could be entered as:</para>

<programlisting remap='.nf'>
define tapetype "DLT4000-III" {
    comment &quot;DLT4000 tape drives with Compact-III tapes&quot;
    length 12500 mbytes         # 10 Gig tapes with some compression
    filemark 2000 kbytes
    speed 1536 kps
}
define tapetype "DLT4000-IV" {
    "DLT4000-III"
    comment &quot;DLT4000 tape drives with Compact-IV tapes&quot;
    length 25000 mbytes         # 20 Gig tapes with some compression
}
</programlisting>

<!-- If anybody has read this, where do all those stupid
     pseudo-duplicate FOM-tapetype-entries come from??
	- sgw, Jan. 2005
-->

</refsect1>

<refsect1><title>INTERFACE SECTION</title>
<para>The
<emphasis remap='B'>amanda.conf</emphasis>
file may define multiple types of network interfaces.
The information is entered in an <amkeyword>interface</amkeyword>
section, which looks like this:</para>

<programlisting>
define interface "<emphasis remap='I'>name</emphasis>" {
    <emphasis remap='I'>interface-option</emphasis> <emphasis remap='I'>interface-value</emphasis>
    <literal>...</literal>
}
</programlisting>

<para>The { must appear at the end of a line, and the } on its own line.</para>
<para><emphasis remap='I'>name</emphasis>
is the name of this type of network interface. It is referenced from the
<emphasis remap='I'>disklist</emphasis> file.</para>

<para>If a
<amkeyword>src-ip</amkeyword> is specified, then the connection should
be from an interface with that IP. The system decide which interface to use
if <amkeyword>src-ip</amkeyword> is not specified. You can add route at the
system level to do more specific routing.</para>

<para>The section do not impose limits
on the bandwidth that will actually be taken up by Amanda.
Amanda computes the estimated bandwidth each file system backup will take
based on the estimated size and time, then compares that plus any other running
backups with the limit as another of the criteria when deciding whether
to start the backup. Once a backup starts, Amanda will use as much of the network as it can
leaving throttling up to the operating system and network hardware.</para>

<para>The interface options and values are:</para>
<variablelist remap='TP'>
  <varlistentry>
  <term><amkeyword>comment</amkeyword> <amtype>string</amtype></term>
  <listitem>
<para>Default: not set.
A comment string describing this set of network information.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>src-ip</amkeyword> <amtype>string</amtype></term>
  <listitem>
<para>The IP address to use when sending a request to an amanda client.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>use</amkeyword> <amtype>int</amtype></term>
  <listitem>
<para>Default:
<amdefault>80000 Kbps</amdefault>.
The speed of the interface in Kbytes per second.</para>
  </listitem>
  </varlistentry>
</variablelist>

<para>In addition to options, another
<amkeyword>interface</amkeyword>
name may be supplied as an identifier, which makes this
<amkeyword>interface</amkeyword>
inherit options from another
<amkeyword>interface</amkeyword>.
At the moment, this is of little use.</para>
</refsect1>

<refsect1><title>APPLICATION SECTION</title>
<para>The
<emphasis remap='B'>amanda.conf</emphasis>
file may define multiple types of application.
The information is entered in a <amkeyword>application</amkeyword>
section, which looks like this:</para>

<programlisting>
define application "<emphasis remap='I'>name</emphasis>" {
    <emphasis remap='I'>application-option</emphasis> <emphasis remap='I'>application-value</emphasis>
    <literal>...</literal>
}
</programlisting>
<para>The { must appear at the end of a line, and the } on its own line.</para>

<para><emphasis remap='I'>name</emphasis>
is the name of this type of application. It is referenced from the
<emphasis remap='I'>dumptype</emphasis></para>

<para>The application options and values are:</para>
<variablelist remap='TP'>
  <varlistentry>
  <term><amkeyword>client-name</amkeyword> <amtype>string</amtype></term>
  <listitem>
<para>No default,
specifies an application name that is in the amanda-client.conf on the client.
The setting from that application will be merged with the current application.
If <amkeyword>client-name</amkeyword> is set then it is an error
if that application is not defined on the client.</para>
<para>If <amkeyword>client-name</amkeyword> is not set then the
merge is done with the application that have the name equal to the plugin.
eg. if the plugin is 'amgtar', then the setting from the application 'amgtar'
is used if it is defined.
</para>
  </listitem>
  </varlistentry>
  <varlistentry>
  <term><amkeyword>comment</amkeyword> <amtype>string</amtype></term>
  <listitem>
<para>Default: not set.
A comment string describing this application.</para>
  </listitem>
  </varlistentry>
  <varlistentry>
  <term><amkeyword>plugin</amkeyword> <amtype>string</amtype></term>
  <listitem>
<para>No default. Must be set to the name of the program. This program must be in the <emphasis remap='I'>$libexecdir/amanda/application</emphasis> directory on the client.</para>
  </listitem>
  </varlistentry>
  <varlistentry>
  <term><amkeyword>property</amkeyword> [<amkeyword>append</amkeyword>] [<amkeyword>priority</amkeyword>] <amtype>string</amtype> <amtype>string</amtype>+</term>
  <listitem>
<para>No default. You can set property for the application, each application have a different set of property. Both strings are quoted; the first string contains the name of
the property to set, and the others contains its values.
<amkeyword>append</amkeyword> keyword append the values to the list of values for that property.
<amkeyword>priority</amkeyword> keyword disallow the setting of that property on the client.
</para>
  </listitem>
  </varlistentry>
</variablelist>
</refsect1>

<refsect1><title>SCRIPT SECTION</title>
<para>The
<emphasis remap='B'>amanda.conf</emphasis>
file may define multiple types of script. 
The information is entered in a <amkeyword>script</amkeyword>
section, which looks like this:</para>

<programlisting>
define script "<emphasis remap='I'>name</emphasis>" {
    <emphasis remap='I'>script-option</emphasis> <emphasis remap='I'>script-value</emphasis>
    <literal>...</literal>
}
</programlisting>
<para>The { must appear at the end of a line, and the } on its own line.</para>

<para><emphasis remap='I'>name</emphasis>
is the name of this type of script. It is referenced from the
<emphasis remap='I'>dumptype</emphasis></para>

<para>The script options and values are:</para>
<variablelist remap='TP'>
  <varlistentry>
  <term><amkeyword>client-name</amkeyword> <amtype>string</amtype></term>
  <listitem>
<para>No default,
specifies a script name that is in the amanda-client.conf on the client.
The setting from that script will be merged with the currect script.
If <amkeyword>client-name</amkeyword> is set then it is an error if that script is not defined on the client.</para>
<para>If <amkeyword>client-name</amkeyword> is not set then the
merge is done with the script that have the name equal to the plugin.
eg. if the plugin is 'amlog-script', then the setting from the script
'amlog-script' is used.
</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>comment</amkeyword> <amtype>string</amtype></term>
  <listitem>
<para>Default: not set.
A comment string describing this script.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>execute-on</amkeyword> <amtype>execute_on</amtype> [,<amtype>execute_on</amtype>]*</term>
  <listitem>
<para>No default. When the script must be executed, you can specify many of them:</para>
    <!-- .RS -->
    <variablelist remap='TP'>
      <varlistentry>
      <term><amkeyword>pre-amcheck</amkeyword></term>
      <listitem>
<para>Execute before the amcheck command for all dle. Can only be run on server.</para>
      </listitem>
      </varlistentry>
      <varlistentry>
      <term><amkeyword>pre-dle-amcheck</amkeyword></term>
      <listitem>
<para>Execute before the amcheck command for the dle.</para>
      </listitem>
      </varlistentry>
      <varlistentry>
      <term><amkeyword>pre-host-amcheck</amkeyword></term>
      <listitem>
<para>Execute before the amcheck command for all dle for the client.</para>
      </listitem>
      </varlistentry>
      <varlistentry>
      <term><amkeyword>post-amcheck</amkeyword></term>
      <listitem>
<para>Execute after the amcheck command for all dle. Can only be run on server.</para>
      </listitem>
      </varlistentry>
      <varlistentry>
      <term><amkeyword>post-dle-amcheck</amkeyword></term>
      <listitem>
<para>Execute after the amcheck command for the dle.</para>
      </listitem>
      </varlistentry>
      <varlistentry>
      <term><amkeyword>post-host-amcheck</amkeyword></term>
      <listitem>
<para>Execute after the amcheck command for all dle for the client.</para>
      </listitem>
      </varlistentry>
      <varlistentry>
      <term><amkeyword>pre-estimate</amkeyword></term>
      <listitem>
<para>Execute before the estimate command for all dle. Can only be run on server.</para>
      </listitem>
      </varlistentry>
      <varlistentry>
      <term><amkeyword>pre-dle-estimate</amkeyword></term>
      <listitem>
<para>Execute before the estimate command for the dle.</para>
      </listitem>
      </varlistentry>
      <varlistentry>
      <term><amkeyword>pre-host-estimate</amkeyword></term>
      <listitem>
<para>Execute before the estimate command for all dle for the client.</para>
      </listitem>
      </varlistentry>
      <varlistentry>
      <term><amkeyword>post-estimate</amkeyword></term>
      <listitem>
<para>Execute after the estimate command for all dle. Can only be run on server.</para>
      </listitem>
      </varlistentry>
      <varlistentry>
      <term><amkeyword>post-dle-estimate</amkeyword></term>
      <listitem>
<para>Execute after the estimate command for the dle.</para>
      </listitem>
      </varlistentry>
      <varlistentry>
      <term><amkeyword>post-host-estimate</amkeyword></term>
      <listitem>
<para>Execute after the estimate command for all dle for the client.</para>
      </listitem>
      </varlistentry>
      <varlistentry>
      <term><amkeyword>pre-backup</amkeyword></term>
      <listitem>
<para>Execute before the backup command for all dle. Can only be run on server.</para>
      </listitem>
      </varlistentry>
      <varlistentry>
      <term><amkeyword>pre-dle-backup</amkeyword></term>
      <listitem>
<para>Execute before the backup command for the dle.</para>
      </listitem>
      </varlistentry>
      <varlistentry>
      <term><amkeyword>pre-host-backup</amkeyword></term>
      <listitem>
<para>Execute before the backup command for all dle for the client. It can't be run on client, it must be run on server</para>
      </listitem>
      </varlistentry>
      <varlistentry>
      <term><amkeyword>post-backup</amkeyword></term>
      <listitem>
<para>Execute after the backup command for all dle. Can only be run on server.</para>
      </listitem>
      </varlistentry>
      <varlistentry>
      <term><amkeyword>post-dle-backup</amkeyword></term>
      <listitem>
<para>Execute after the backup command for the dle.</para>
      </listitem>
      </varlistentry>
      <varlistentry>
      <term><amkeyword>post-host-backup</amkeyword></term>
      <listitem>
<para>Execute after the backup command for all dle for the client. It can't be run on client, it must be run on server</para>
      </listitem>
      </varlistentry>
      <varlistentry>
      <term><amkeyword>pre-recover</amkeyword></term>
      <listitem>
<para>Execute before any level is recovered.</para>
      </listitem>
      </varlistentry>
      <varlistentry>
      <term><amkeyword>post-recover</amkeyword></term>
      <listitem>
<para>Execute after all levels are recovered.</para>
      </listitem>
      </varlistentry>
      <varlistentry>
      <term><amkeyword>pre-level-recover</amkeyword></term>
      <listitem>
<para>Execute before each level recovery.</para>
      </listitem>
      </varlistentry>
      <varlistentry>
      <term><amkeyword>post-level-recover</amkeyword></term>
      <listitem>
<para>Execute after each level recovery.</para>
      </listitem>
      </varlistentry>
      <varlistentry>
      <term><amkeyword>inter-level-recover</amkeyword></term>
      <listitem>
<para>Execute between two levels of recovery.</para>
      </listitem>
      </varlistentry>
    </variablelist>
    <para>If you recover level 0 and 2 of the disk /usr with amrecover, it will execute:</para>
<programlisting>
script --pre-recover
script --pre-level-recover --level 0
#recovering level 0
script --post-level-recover --level 0
script --inter-level-recover --level 0 --level 2
script --pre-level-recover --level 2
#recovering level 2
script --post-level-recover --level 2
script --post-recover
</programlisting>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>execute-where</amkeyword> [ <amkeyword>client</amkeyword> | <amkeyword>server</amkeyword> ]</term>
  <listitem>
<para>Default: <amkeyword>client</amkeyword>. Where the script must be executed, on the client or server.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>order</amkeyword> <amtype>int</amtype></term>
  <listitem>
<para>Default: <amdefault>5000</amdefault>. Scripts are executed in that order, it is useful if you have many scripts and they must be executed in a spefific order.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>plugin</amkeyword> <amtype>string</amtype></term>
  <listitem>
<para>No default. Must be set to the name of the program. This program must be in the <emphasis remap='I'>$libexecdir/amanda/application</emphasis> directory on the client and/or server.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>property</amkeyword> [<amkeyword>append</amkeyword>] [<amkeyword>priority</amkeyword>] <amtype>string</amtype> <amtype>string</amtype>+</term>
  <listitem>
<para>No default. You can set property for the script, each script have a different set of property. Both strings are quoted; the first string contains the name of
the property to set, and the others contains its values.
<amkeyword>append</amkeyword> keyword append the values to the list of values for that property.
<amkeyword>priority</amkeyword> keyword disallow the setting of that property on the client.
</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>single-execution</amkeyword> <amtype>boolean</amtype></term>
  <listitem>
<para>Default: <amdefault>no</amdefault>. The script is executed for each dle. If <amdefault>yes</amdefault>, the script is executed one time only.</para>
  </listitem>
  </varlistentry>

</variablelist>
</refsect1>

<refsect1><title>DEVICE SECTION</title>
<para>Backend storage devices are specified in
<emphasis remap='B'>amanda.conf</emphasis>
in the form of "device" sections, which look like this:</para>

<programlisting>
define device <emphasis remap='I'>name</emphasis> {
    comment "<emphasis remap='I'>comment (optional)</emphasis>"
    tapedev "<emphasis remap='I'>device-specifier</emphasis>"
    device-property "<emphasis remap='I'>prop-name</emphasis>" "<emphasis remap='I'>prop-value</emphasis>"
    <literal>...</literal>
}
</programlisting>

<para>The { must appear at the end of a line, and the } on its own line.</para>
<para><emphasis remap='I'>name</emphasis> is the user-specified name of
this device. It is referenced from the global <emphasis
remap='I'>tapedev</emphasis> parameter.  The <emphasis
remap='I'>device-specifier</emphasis> specifies the device name to use;
see <manref name="amanda-devices" vol="7"/>.
As with most sections, the <emphasis remap='I'>comment</emphasis>
parmeter is optional and only for the user's convenience.</para>

<para>An arbitrary number of <emphasis
remap='I'>device-property</emphasis> parameters can be specified.
Again, see
<manref name="amanda-devices" vol="7"/>
for information on device properties.</para>

</refsect1>

<refsect1><title>CHANGER SECTION</title>
<para>Changers are described in
<emphasis remap='B'>amanda.conf</emphasis>
in the form of "changer" sections, which look like this:</para>

<programlisting>
define changer <emphasis remap='I'>name</emphasis> {
    comment "<emphasis remap='I'>comment (optional)</emphasis>"
    tpchanger "<emphasis remap='I'>changer-spec</emphasis>"
    changerdev "<emphasis remap='I'>device-name</emphasis>"
    changerfile "<emphasis remap='I'>state-file</emphasis>"
    <literal>...</literal>
}
</programlisting>

<para>The { must appear at the end of a line, and the } on its own line.</para>
<para><emphasis remap='I'>name</emphasis> is the user-specified name of this
device. The remaining parameters are specific to the changer type selected.
</para>

<para>The tpchanger and changerfile can use '$t' to substitute the name of
the changer.</para>
<para>See <manref name="amanda-changers" vol="7" /> for more information on configuring changers.</para>

</refsect1>

<refsect1><title>INTERACTIVITY SECTION</title>
<para>The
<emphasis remap='B'>amanda.conf</emphasis>
file may define multiple interactivyt methods, although only one will be used - that specified
by the <amkeyword>interactivity</amkeyword> parameter.
The information is entered in a <amkeyword>interactivity</amkeyword>
section, which looks like this:</para>

<programlisting>
define interactivity <emphasis remap='I'>name</emphasis> {
    <emphasis remap='I'>interactivity-option</emphasis> <emphasis remap='I'>interactivity-value</emphasis>
    <literal>...</literal>
}
</programlisting>

<para>The { must appear at the end of a line, and the } on its own line.</para>
<para><emphasis remap='I'>name</emphasis> is the user-specified name of this
interactivity. The remaining parameters are specific to the interactivity type
selected.
</para>

<para>The interactivity options and values are:</para>
<variablelist remap='TP'>
  <varlistentry>
  <term><amkeyword>comment</amkeyword> <amtype>string</amtype></term>
  <listitem>
<para>Default: not set.
A comment string describing this interactivity.</para>
  </listitem>
  </varlistentry>
  <varlistentry>
  <term><amkeyword>plugin</amkeyword> <amtype>string</amtype></term>
  <listitem>
<para>No default. Must be set to the name of the interactivity module, as described in <manref name="amanda-interactivity" vol="7" />.</para>
  </listitem>
  </varlistentry>
  <varlistentry>
  <term><amkeyword>property</amkeyword> [<amkeyword>append</amkeyword>] <amtype>string</amtype> <amtype>string</amtype>+</term>
  <listitem>
<para>No default. You can set arbitrary properties for the interactivity.  Each interactivity module has a different set of properties. The first string contains the name of
the property to set, and the others contains its values.  All strings should be quoted.
The <amkeyword>append</amkeyword> keyword appends the given values to an existing list of values for that property.
</para>
  </listitem>
  </varlistentry>
</variablelist>

<para>See <manref name="amanda-interactivity" vol="7" /> for more information on configuring interactivity methods.</para>

</refsect1>

<refsect1><title>TAPERSCAN SECTION</title>
<para>The
<emphasis remap='B'>amanda.conf</emphasis>
file may define multiple taperscan methods, it is set with the global
<amkeyword>taperscan</amkeyword> parameter or in the storage section.
The information is entered in a <amkeyword>taperscan</amkeyword>
section, which looks like this:</para>

<programlisting>
define taperscan <emphasis remap='I'>name</emphasis> {
    <emphasis remap='I'>taperscan-option</emphasis> <emphasis remap='I'>taperscan-value</emphasis>
    <literal>...</literal>
}
</programlisting>

<para>The { must appear at the end of a line, and the } on its own line.</para>
<para><emphasis remap='I'>name</emphasis> is the user-specified name of this
taperscan. The remaining parameters are specific to the taperscan type
selected.
</para>

<para>The taperscan options and values are:</para>
<variablelist remap='TP'>
  <varlistentry>
  <term><amkeyword>comment</amkeyword> <amtype>string</amtype></term>
  <listitem>
<para>Default: not set.
A comment string describing this taperscan.</para>
  </listitem>
  </varlistentry>
  <varlistentry>
  <term><amkeyword>plugin</amkeyword> <amtype>string</amtype></term>
  <listitem>
<para>No default. Must be set to the name of the taperscan module.  See <manref name="amanda-taperscan" vol="7" /> for a list of defined taperscan modules.</para>
  </listitem>
  </varlistentry>
  <varlistentry>
  <term><amkeyword>property</amkeyword> [<amkeyword>append</amkeyword>] <amtype>string</amtype> <amtype>string</amtype>+</term>
  <listitem>
<para>No default.  Operates just like properties for interactivity methods, above.</para>
  </listitem>
  </varlistentry>
</variablelist>

<para>See <manref name="amanda-taperscan" vol="7" /> for more information on configuring taperscan.</para>

</refsect1>

<refsect1><title>POLICY SECTION</title>
<para>The
<emphasis remap='B'>amanda.conf</emphasis>
file may define multiple policy, it is set with the
<amkeyword>policy</amkeyword> parameter of the storage section.
A policy name CONFIG_NAME is automaticaly created.
The information is entered in a <amkeyword>policy</amkeyword>
section, which looks like this:</para>

<programlisting>
define policy <emphasis remap='I'>name</emphasis> {
    <emphasis remap='I'>policy-option</emphasis> <emphasis remap='I'>policy-value</emphasis>
    <literal>...</literal>
}
</programlisting>

<para>The { must appear at the end of a line, and the } on its own line.</para>
<para><emphasis remap='I'>name</emphasis> is the user-specified name of this
policy. The remaining parameters are specific to the policy type
selected.
</para>

<para>The policy options and values are:</para>
<variablelist remap='TP'>
  <varlistentry>
  <term><amkeyword>comment</amkeyword> <amtype>string</amtype></term>
  <listitem>
<para>Default: not set.
A comment string describing this policy.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>retention-days</amkeyword> <amtype>int</amtype></term>
  <listitem>
<para>Default: 0. A volume is kept for that number of days before it can be
reused.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>retention-full</amkeyword> <amtype>int</amtype></term>
  <listitem>
<para>Default: 0. A volume is kept if it contains a FULL not older then <amkeyword>retention-full</amkeyword> days.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>retention-recover</amkeyword> <amtype>int</amtype></term>
  <listitem>
<para>Default: 0. Keep all volumes needed to recover all files up to
<amkeyword>retention-recover</amkeyword> days ago,  if it was a level 2, also
keep previous level 1 and level 0.
</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>retention-tapes</amkeyword> <amtype>int</amtype></term>
  <listitem>
<para>Default: global tapecycle-1. The latest used <amkeyword>retention-tapes</amkeyword> volume can't be reused.
You must have more than <amkeyword>retention-tapes</amkeyword> volumes
before a volume can be re-used.</para>
  </listitem>
  </varlistentry>

</variablelist>

</refsect1>

<refsect1><title>STORAGE SECTION</title>
<para>The
<emphasis remap='B'>amanda.conf</emphasis>
file may define multiple storage, the default storages are set with the
<amkeyword>storage</amkeyword> parameter. The vaulting storage are set with
the the <amkeyword>vault-storage</amkeyword> parameter.
A storage name CONFIG_NAME is created if the global
<amkeyword>storage</amkeyword> is not set.
The information is entered in a <amkeyword>storage</amkeyword>
section, which looks like this:</para>

<programlisting>
define storage <emphasis remap='I'>name</emphasis> {
    <emphasis remap='I'>storage-option</emphasis> <emphasis remap='I'>storage-value</emphasis>
    <literal>...</literal>
}
</programlisting>

<para>The { must appear at the end of a line, and the } on its own line.</para>
<para><emphasis remap='I'>name</emphasis> is the user-specified name of this
storage. The remaining parameters are specific to the storage type
selected.
</para>

<para>The storage options and values are:</para>
<variablelist remap='TP'>
  <varlistentry>
  <term><amkeyword>autoflush</amkeyword> <amkeyword>no</amkeyword>|<amkeyword>yes</amkeyword>|<amkeyword>all</amkeyword></term>
  <listitem>
<para>Default: value of the global <amkeyword>autoflush</amkeyword>.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>autolabel</amkeyword>
        <amtype>string</amtype>
        [<amkeyword>any</amkeyword>]
        [<amkeyword>other-config</amkeyword>]
        [<amkeyword>non-amanda</amkeyword>]
        [<amkeyword>volume-error</amkeyword>]
        [<amkeyword>empty</amkeyword>]</term>
  <listitem>
<para>Default: value of the global <amkeyword>autolabel</amkeyword>.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>comment</amkeyword> <amtype>string</amtype></term>
  <listitem>
<para>Default: not set.
A comment string describing this storage.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>device-output-buffer-size</amkeyword> <amtype>int</amtype></term>
  <listitem>
<para>Default: value of the global <amkeyword>device-output-buffer-size</amkeyword>.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>dump-selection</amkeyword>
	[<amtype>string</amtype> | <amkeyword>ALL</amkeyword>]
	[ <amkeyword>ALL</amkeyword> | <amkeyword>FULL</amkeyword> | <amkeyword>INCR</amkeyword> ]</term>
  <listitem>
<para>Default: no default. The dump-selection specify which dump will be written to
the storage. The first field is the tag, either it is <amkeyword>ALL</amkeyword> and all DLEs matches or it is a tag string and a dle match only if it have that tag.
The second field is the level, it can be <amkeyword>ALL</amkeyword> for all level,
<amkeyword>FULL</amkeyword> for level 0 only or <amkeyword>INCR</amkeyword> for level >
0 only.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>eject-volume</amkeyword> <amtype>bool</amtype></term>
  <listitem>
<para>Default: value of the global <amkeyword>eject-volume</amkeyword>.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>erase-on-failure</amkeyword> <amtype>bool</amtype></term>
  <listitem>
<para>Default: <amkeyword>NO</amkeyword>. Automatically erase a volume if
nothing useful was written to it. This is useful to reuse the volume sooner.
</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>erase-on-full</amkeyword> <amtype>bool</amtype></term>
  <listitem>
<para>Default: <amkeyword>NO</amkeyword>. Automatically erase a no-retention
volume if the vtape area become full.
</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>erase-volume</amkeyword> <amtype>bool</amtype></term>
  <listitem>
<para>Default: <amkeyword>NO</amkeyword>. Automatically erase the volume when
the policy expire. This is useful to free space on vtape or s3 devices or to
allow another storage to use that volume.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>flush-threshold-dumped</amkeyword> <amtype>int</amtype></term>
  <listitem>
<para>Default: value of the global <amkeyword>flush-threshold-dumped</amkeyword>.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>flush-threshold-scheduled</amkeyword> <amtype>int</amtype></term>
  <listitem>
<para>Default: value of the global <amkeyword>flush-threshold-scheduled</amkeyword>.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>interactivity</amkeyword> <amtype>string</amtype></term>
  <listitem>
<para>Default: value of the global <amkeyword>interactivity</amkeyword>.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>labelstr</amkeyword> <amtype>string</amtype></term>
  <listitem>
<para>Default: value of the global <amkeyword>labelstr</amkeyword>.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>max-dle-by-volume</amkeyword> <amtype>int</amtype></term>
  <listitem>
<para>Default: value of the global <amkeyword>max-dle-by-volume</amkeyword>.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>meta-autolabel</amkeyword> <amtype>string</amtype></term>
  <listitem>
<para>Default: value of the global <amkeyword>meta-autolabel</amkeyword>.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>policy</amkeyword> <amtype>string</amtype></term>
  <listitem>
<para>Default: CONFIG_NAME. Define the policy to use.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>report-next-media</amkeyword> <amtype>boolean</amtype></term>
  <listitem>
<para>Default: value of the global <amkeyword>report-next-media</amkeyword>.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>report-use-media</amkeyword> <amtype>boolean</amtype></term>
  <listitem>
<para>Default: value of the global <amkeyword>report-use-media</amkeyword>.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>runtapes</amkeyword> <amtype>int</amtype></term>
  <listitem>
<para>Default: value of the global <amkeyword>runtapes</amkeyword>.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>set-no-reuse</amkeyword> <amtype>bool</amtype></term>
  <listitem>
<para>Default: <amkeyword>no</amkeyword>. If set to <amkeyword>yes</amkeyword>,
a volume is marked as <amkeyword>no-reuse</amkeyword> after it is written.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>tapedev</amkeyword> <amtype>string</amtype></term>
  <listitem>
<para>Default: value of the global <amkeyword>tapedev</amkeyword>.</para>
<para>This parameter can either specify a device (explicitly or by referencing a device definition - see <manref name="amanda-devices" vol="7" />)
or a tape changer (explicitly or by referencing a device definition - see <manref name="amanda-changers" vol="7" />).</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>tapepool</amkeyword> <amtype>string</amtype></term>
  <listitem>
<para>Default: CONFIG_NAME.  Some characters are substituted:
<programlisting>
    $o : org configuration
    $c : config name
    $r : storage name
</programlisting></para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>taperalgo</amkeyword>  [ <amkeyword>first</amkeyword> | <amkeyword>firstfit</amkeyword> | <amkeyword>largest</amkeyword> | <amkeyword>largestfit</amkeyword> | <amkeyword>smallest</amkeyword> | <amkeyword>last</amkeyword> ]</term>
  <listitem>
<para>Default: value of the global <amkeyword>taperalgo</amkeyword>.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>taperflush</amkeyword> <amtype>int</amtype></term>
  <listitem>
<para>Default: value of the global <amkeyword>taperflush</amkeyword>.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>taperscan</amkeyword> <amtype>string</amtype></term>
  <listitem>
<para>Default: value of the global <amkeyword>taperscan</amkeyword>.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>taper-parallel-write</amkeyword> <amtype>int</amtype></term>
  <listitem>
<para>Default: value of the global <amkeyword>taper-parallel-write</amkeyword>.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>tapetype</amkeyword> <amtype>string</amtype></term>
  <listitem>
<para>Default: value of the global <amkeyword>tapetype</amkeyword>.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>tpchanger</amkeyword> <amtype>string</amtype></term>
  <listitem>
<para>Default: value of the global <amkeyword>tpchanger</amkeyword>.</para>
  </listitem>
  </varlistentry>

  <varlistentry>
  <term><amkeyword>vault</amkeyword> <amtype>storage</amtype> <amtype>int</amtype></term>
  <listitem>
<para>Will vault all dumps from this storage to the new storage X days after the dumps.
You can have multiple vault entry.</para>
  </listitem>
  </varlistentry>

</variablelist>

</refsect1>


<refsect1><title>Dump Splitting Configuration</title>

    <para>Amanda can "split" dumps into parts while writing them to storage
	media.  This allows Amanda to recover gracefully from a failure while
	writing a part to a volume, by simply selecting a new volume and
	re-writing the dump from the beginning of the failed part.  Parts also
	allow Amanda to seek directly to the required data, although this
	functionality is not yet used.</para>

    <para>In order to support re-writing from the beginning of a failed part,
	Amanda must have access to the contents of the part after it has been
	partially written.  If the dump is being read from holding disk, then
	the part contents are available there.  Otherwise, the part must be
	cached, and this can be done memory or on disk.  In either of the
	latter cases, the cache must have enough space to hold an entire
	part.</para>

    <para>Because it is common for a single Amanda configuration to use both
	holding-disk (FILE-WRITE) and direct (known as PORT-WRITE) dumps, Amanda
	allows the configuration of different split sizes for the two cases.  This
	allows, for example, for a part size appropriate to large tapes when
	performing FILE-WRITE dumps, with a part size limited by available disk
	or memory when performing PORT-WRITE dumps.</para>

    <para>Selecting a proper split size is a delicate matter.  If the parts are
	too large, substantial storage space may be wasted in failed parts.  If
	too small, large dumps will be split into innumerable tiny dumpfiles,
	adding to restoration complexity; furthermore, an excess of filemarks
	will cause slower tape drive operation and reduce the usable space on
	tape.  A good rule of thumb is 1/10 of the size of a volume of storage
	media.</para>

    <para>In versions of Amanda through 3.1.*, splitting was controlled by the
	dumptype parameters <amkeyword>tape-splitsize</amkeyword>,
	<amkeyword>split-diskbuffer</amkeyword>, and
	<amkeyword>fallback-splitsize</amkeyword>.  These keywords had
	confusing and non-intuitive interactions, and have since been
	deprecated.</para>

    <para>If the deprecated keywords are not present, subsequent versions
	of Amanda use the dumptype parameter
	<amkeyword>allow-split</amkeyword> to control whether a DLE can be
	split, and the <emphasis>tapetype</emphasis> parameters
	<amkeyword>part-size</amkeyword>,
	<amkeyword>part-cache-type</amkeyword>,
	<amkeyword>part-cache-dir</amkeyword>, and
	<amkeyword>part-cache-max-size</amkeyword>.  The
	<amkeyword>part-size</amkeyword> specifies the "normal" part size,
	while the <amkeyword>part-cache-*</amkeyword> parameters describe
	how to behave when caching is required (on PORT-WRITE).  Full
	details on these parameters are given above.</para>

</refsect1>

<seealso>
<manref name="amanda-applications" vol="7"/>,
<manref name="amanda-auth" vol="7"/>,
<manref name="amanda-changers" vol="7"/>,
<manref name="amanda-client.conf" vol="5"/>,
<manref name="amanda-command-file" vol="5"/>,
<manref name="amanda-devices" vol="7"/>,
<manref name="amanda-interactivity" vol="7"/>,
<manref name="amanda-scripts" vol="7"/>
<manref name="amanda-taperscan" vol="7"/>
<manref name="amgetconf" vol="8"/>
<manref name="amadmin" vol="8"/>
</seealso>


</refentry>