# amanda.conf - sample Amanda configuration file. See amanda.conf(5) for 
# details

org 	 "Coolheads"	# your organization name for reports
mailto 	 "srn vtn"	# space separated list of operators at your site
dumpuser "amanda"	# the user to run dumps under

inparallel 5		# maximum dumpers that will run in parallel (max 63)
			# this maximum can be increased at compile-time,
			# modifying MAX_DUMPERS in server-src/driverio.h
dumporder "BTBTB"	# specify the priority order of each dumper
			#   s -> smallest size
			#   S -> biggest size
			#   t -> smallest time
			#   T -> biggest time
			#   b -> smallest bandwitdh
			#   B -> biggest bandwitdh
			# try "BTBTBTBTBTBT" if you are not holding
			# disk constrained

taperalgo largestfit	# The algorithm used to choose which dump image to send
			# to the taper.
			# Possible values: 
		        # [first|firstfit|largest|largestfit|smallest|last]
			# Default: first. 
			# first		First in - first out.
			# firstfit 	The first dump image that will fit 
                        #               on the current tape.
			# largest 	The largest dump image.
			# largestfit 	The largest dump image that will fit 
                        #               on the current tape.
			# smallest 	The smallest dump image.
			# last 		Last in - first out.

displayunit "k"		# Possible values: "k|m|g|t"
			# Default: k. 
			# The unit used to print many numbers.
			# k=kilo, m=mega, g=giga, t=tera
			
netusage  600 Kbps	# maximum net bandwidth for Amanda, in KB per sec

dumpcycle 4 weeks	# the number of days in the normal dump cycle
runspercycle 28         # the number of amdump runs in dumpcycle days
			# (4 weeks * 5 amdump runs per week -- just weekdays)
tapecycle 132 tapes	# the number of tapes in rotation
			# 4 weeks (dumpcycle) times 5 tapes per week (just
			# the weekdays) plus a few to handle errors that
			# need amflush and so we do not overwrite the full
			# backups performed at the beginning of the previous
			# cycle

bumpsize 100 Mb		# minimum savings (threshold) to bump level 1 -> 2
bumppercent 20		# minimum savings (threshold) to bump level 1 -> 2
bumpdays 1		# minimum days at each level
bumpmult 4		# threshold = bumpsize * bumpmult^(level-1)

etimeout -16000		# number of seconds per filesystem for estimates.
dtimeout 1800		# number of idle seconds before a dump is aborted.
ctimeout 300		# maximum number of seconds that amcheck waits
			# for each client host
 
tapebufs 128            # A positive integer telling taper how many 
                        # 32k buffers to allocate.  The default is 20 (640k).

# By default, Amanda can only track at most one run per calendar day. When
# the usetimestamps option is enabled, however, Amanda can track as many
# runs as you care to make.
# WARNING: This option is not backward-compatible. Do not enable it if you
#          intend to downgrade your server installation to Amanda community 
#          edition 2.5
usetimestamps yes


# Specify tape device and/or tape changer.  If you don't have a tape
# changer, and you don't want to use more than one tape per run of
# amdump, just comment out the definition of tpchanger.

# Some tape changers require tapedev to be defined; others will use
# their own tape device selection mechanism.  Some use a separate tape
# changer device (changerdev), others will simply ignore this
# parameter.  Some rely on a configuration file (changerfile) to
# obtain more information about tape devices, number of slots, etc;
# others just need to store some data in files, whose names will start
# with changerfile.  

# At most one changerfile entry must be defined; select the most
# appropriate one for your configuration.  If you select man-changer,
# keep the first one; if you decide not to use a tape changer, you may
# comment them all out.

runtapes 20		# number of tapes to be used in a single run of amdump
                        # this is a lie.
tapetype Eliant-820-112m	# what kind of tape it is (see tapetypes below)
tpchanger "chg-multi"	        # the tape-changer glue script
changerfile "chg-multi.conf"    # the tape-changer config file

# If you want Amanda to automatically label any non-Amanda tapes it
# encounters, uncomment the line below. Note that this will ERASE any
# non-Amanda tapes you may have, and may also ERASE any near-failing tapes.
# Use with caution.
# label_new_tapes "CH%%%"  ## don't want this!

labelstr "^CH[0-9][0-9]*$"	# label constraint regex: all tapes must match

maxdumpsize -1		# Maximum number of bytes the planner will schedule
			# for a run (default: runtapes * tape_length).

amrecover_do_fsf yes		# amrecover will call amrestore with the
				# -f flag for faster positioning of the tape.
amrecover_check_label yes	# amrecover will call amrestore with the
				# -l flag to check the label.
amrecover_changer "chg-multi"	# amrecover will use the changer if you restore
				# from this device.
				# It could be a string like 'changer' and
				# amrecover will use your changer if you
				# set your tape with 'settape changer'

# Specify holding disks.  These are used as a temporary staging area for
# dumps before they are written to tape and are recommended for most sites.
# The advantages include: tape drive is more likely to operate in streaming
# mode (which reduces tape and drive wear, reduces total dump time); multiple
# dumps can be done in parallel (which can dramatically reduce total dump time.
# The main disadvantage is that dumps on the holding disk need to be flushed
# (with amflush) to tape after an operating system crash or a tape failure.
# If no holding disks are specified then all dumps will be written directly
# to tape.  If a dump is too big to fit on the holding disk than it will be
# written directly to tape.  If more than one holding disk is specified then
# they will all be used based on activity and available space.

holdingdisk hd1 {
    comment "main holding disk"
    directory "/nobackup/AMANDASPOOL"	# where the holding disk is
    use -2048 Mb			# how much space can we use on it
				# a non-positive value means:
				# use all space but that value
    chunksize 500 Mb 	# size of chunk if you want big dump to be
			# dumped on multiple files on holding disks
			#  N Kb/Mb/Gb split images in chunks of size N
			#	      The maximum value should be
			#	      (MAX_FILE_SIZE - 1Mb)
			#  0          same as INT_MAX bytes
    }
#holdingdisk hd2 {
#    directory "/dumps2/amanda"
#    use 1000 Mb
#    }
#holdingdisk hd3 {
#    directory "/mnt/disk4"
#    use 1000 Mb
#    }


# If amanda cannot find a tape on which to store backups, it will run
# as many backups as it can to the holding disks.  In order to save
# space for unattended backups, by default, amanda will only perform
# incremental backups in this case, i.e., it will reserve 100% of the
# holding disk space for the so-called degraded mode backups.
# However, if you specify a different value for the `reserve'
# parameter, amanda will not degrade backups if they will fit in the
# non-reserved portion of the holding disk.

reserve 30 # percent
# This means save at least 30% of the holding disk space for degraded
# mode backups.  

autoflush yes #
# if autoflush is set to yes, then amdump will schedule all dump on
# holding disks to be flush to tape during the run.

# The format for a ColumnSpec is a ',' seperated list of triples.
# Each triple consists of
#   + the name of the column (as in ColumnNameStrings)
#   + prefix before the column
#   + the width of the column, if set to -1 it will be recalculated
#     to the maximum length of a line to print.
# Example:
# 	"Disk=1:17,HostName=1:10,OutKB=1:7"
# or
# 	"Disk=1:-1,HostName=1:10,OutKB=1:7"
#        
# You need only specify those colums that should be changed from
# the default. If nothing is specified in the configfile, the
# above compiled in values will be in effect, resulting in an
# output as it was all the time.
# The names of the colums are:
# HostName, Disk, Level, OrigKB, OutKB, Compress, DumpTime, DumpRate,
# TapeTime and TapeRate.
#							ElB, 1999-02-24.
# columnspec "Disk=1:18,HostName=0:10,OutKB=1:7"
columnspec "HostName=1:-1,Disk=1:-1,Level=1:-1,OrigKB=1:-1,OutKB=1:-1,Compress=1:-1,DumpTime=1:-1,DumpRate=1:-1,TapeTime=1:-1,TapeRate=1:-1

# Amanda needs a few Mb of diskspace for the log and debug files,
# as well as a database.  This stuff can grow large, so the conf directory
# isn't usually appropriate.  Some sites use /usr/local/var and some /usr/adm.
# Create an amanda directory under there.  You need a separate infofile and
# logdir for each configuration, so create subdirectories for each conf and
# put the files there.  Specify the locations below.

# Note that, although the keyword below is infofile, it is only so for
# historic reasons, since now it is supposed to be a directory (unless
# you have selected some database format other than the `text' default)
infofile "/home/amanda/INFO"	# database DIRECTORY
logdir   "/home/amanda/LOG"		# log directory
indexdir "/home/amanda/INDEX"		# index directory
tapelist "/home/amanda/tapelist"	# list of used tapes
# tapelist is stored, by default, in the directory that contains amanda.conf

# tapetypes

# Define the type of tape you use here, and use it in "tapetype"
# above.  Some typical types of tapes are included here.  The tapetype
# tells amanda how many MB will fit on the tape, how big the filemarks
# are, and how fast the tape device is.

# A filemark is the amount of wasted space every time a tape section
# ends.  If you run `make tapetype' in tape-src, you'll get a program
# that generates tapetype entries, but it is slow as hell, use it only
# if you really must and, if you do, make sure you post the data to
# the amanda mailing list, so that others can use what you found out
# by searching the archives.

# For completeness Amanda should calculate the inter-record gaps too,
# but it doesn't.  For EXABYTE and DAT tapes this is ok.  Anyone using
# 9 tracks for amanda and need IRG calculations?  Drop me a note if
# so.

# If you want amanda to print postscript paper tape labels
# add a line after the comment in the tapetype of the form
#    lbl-templ "/path/to/postscript/template/label.ps"

# if you want the label to go to a printer other than the default
# for your system, you can also add a line above for a different
# printer. (i usually add that line after the dumpuser specification)

# printer "mypostscript"  # printer to print paper label on

# here is an example of my definition for an EXB-8500

# define tapetype EXB-8500 {
# ...
#     lbl-templ "/home/amanda/config/lbl.exabyte.ps"
# }


define tapetype Eliant-820-112m {
    comment "Exabyte Eliant 820 8mm drive with 112 meter tapes"
#    length 3932160 kbytes   # 112-meter tapes.  This figure is 75% of 5 gigabytes, which is their nominal raw capacity.
    length 4194304 kbytes   # 112-meter tapes.  This figure is 80% of 5 gigabytes, which is their nominal raw capacity.
    filemark 48 kbytes        # Assuming it's the same as for EXB-8500
#    speed 474 kbytes          # pay no attention to this, it's ignored by Amanda anyway
}

define tapetype Eliant-820-160m {
    comment "Exabyte Eliant 820 8mm drive with 160 meter tapes"
    length 5505024 kbytes   # 160-meter tapes.  This figure is 75% of 7 gigabytes, which is their nominal raw capacity
    filemark 48 kbytes        # Assuming it's the same as for EXB-8500
#    speed 474 kbytes          # pay no attention to this, it's ignored by Amanda anyway
}



# dumptypes
#
# These are referred to by the disklist file.  The dumptype specifies
# certain parameters for dumping including:
#   auth	- authentication scheme to use between server and client.
#		  Valid values are "bsd", "krb4", "krb5" and "ssh".  
#		  Default: [auth bsd]
#   comment	- just a comment string
#   comprate	- set default compression rate.  Should be followed by one or
#		  two numbers, optionally separated by a comma.  The 1st is
#		  the full compression rate; the 2nd is the incremental rate.
#		  If the second is omitted, it is assumed equal to the first.
#		  The numbers represent the amount of the original file the
#		  compressed file is expected to take up.
#		  Default: [comprate 0.50, 0.50]
#   compress	- specify compression of the backed up data.  Valid values are:
#		  "none"        - don't compress the dump output.
#		  "client best" - compress on the client using the best (and
#				  probably slowest) algorithm.
#		  "client fast" - compress on the client using fast algorithm.
#	          "client custom" - compress using your custom client compression program.
#				    use client_custom_compress "PROG" to specify
#				    the custom compression program.
#				    PROG must not contain white space.
#		  "server best" - compress on the tape host using the best (and
#				  probably slowest) algorithm.
#		  "server fast" - compress on the tape host using a fast
#				  algorithm.  This may be useful when a fast
#				  tape host is backing up slow clients.
#	          "server custom" - compress using your server custom compression program.
#				    use server_custom_compress "PROG" to specify
#				    the custom compression program.
#				    PROG must not contain white space.
#		  Default: [compress client fast]
#   dumpcycle	- set the number of days in the dump cycle, ie, set how often a
#		  full dump should be performed.  Default: from DUMPCYCLE above
#   estimate      Determine the way AMANDA does it's estimate. 
#		  "client"	- Use the same program as the dumping program,
#				this is the most accurate way to do estimates, 
#				but it can take a long time.
#		  "calcsize"	- Use a faster program to do estimates, but the
#		  		result is less accurate.
#		  "server"	- Use only statistics from the previous run to 
#				give an estimate, 
#				it takes only a few seconds but the result is not 
#				accurate if your disk usage changes from day to day.
#		  Default: [client]
#   encrypt  - specify encryption of the backed up data. Valid values are:
#		  "none"   - don't encrypt the dump output.
#		  "client" - encrypt on the client using the program specified by 
#                            client_encrypt "PROG".
#			     Use client_decrypt_option to specify the decrypt- 
#                            parameter, default is "-d".
#                            PROG and decrypt-parameter must not contain white space.     
#		  "server" - encrypt on the server using the program specified by 
#                            server_encrypt "PROG".
#                            Use server_decrypt_option to specify the decrypt- 
#                            parameter, default is "-d".
#                            PROG and decrypt-parameter must not contain white space.
#                 Default: [none]
#   exclude	- specify files and directories to be excluded from the dump.
#		  Useful with gnutar only; silently ignored by dump and samba.
#		  Valid values are:
#		  "pattern"       - a shell glob pattern defining which files
#				    to exclude.
#				    gnutar gets --exclude="pattern"
#		  list "filename" - a file (on the client!) containing patterns
#				    re's (1 per line) defining which files to
#				    exclude.
#				    gnutar gets --exclude-from="filename"
#		  Note that the `full pathname' of a file within its
#		  filesystem starts with `./', because of the way amanda runs
#		  gnutar: `tar -C $mountpoint -cf - --lots-of-options .' (note
#		  the final dot!)  Thus, if you're backing up `/usr' with a
#		  diskfile entry like ``host /usr gnutar-root', but you don't
#		  want to backup /usr/tmp, your exclude list should contain
#		  the pattern `./tmp', as this is relative to the `/usr' above.
#		  Please refer to the man-page of gnutar for more information.
#		  If a relative pathname is specified as the exclude list,
#		  it is searched from within the directory that is
#		  going to be backed up.
#		  Default: include all files
#   holdingdisk	- should the holding disk be used for this dump.  Useful for
#		  dumping the holding disk itself.  Default: [holdingdisk auto]
#		  "never"    - Never use the holding disk.
#		  "auto"     - Use the holding disk if possible.
#		  "required" - Always use the holding disk.
#   ignore	- do not back this filesystem up.  Useful for sharing a single
#		  disklist in several configurations.
#   index	- keep an index of the files backed up.  Default: [index no]
#   kencrypt	- encrypt the data stream between the client and server.
#		  Default: [kencrypt no]
#   maxdumps	- max number of concurrent dumps to run on the client.
#		  Default: [maxdumps 1]
#   maxpromoteday - max number of day for a promotion, set it 0 if you don't
#		  want promotion, set it to 1 or 2 if your disk get
#		  overpromoted.
#		  Default: [10000]
#   priority	- priority level of the dump.  Valid levels are "low", "medium"
#		  or "high".  These are really only used when Amanda has no
#		  tape to write to because of some error.  In that "degraded
#		  mode", as many incrementals as will fit on the holding disk
#		  are done, higher priority first, to insure the important
#		  disks are at least dumped.  Default: [priority medium]
#   program	- specify the dump system to use.  Valid values are "DUMP",
#                 or "GNUTAR".  Default: [program "DUMP"].
#   record	- record the backup in the time-stamp-database of the backup
#		  program (e.g. /etc/dumpdates for DUMP or
#		  /home/amanda/var/amanda/gnutar-lists for GNUTAR.).
#		  Default: [record yes]
#   skip-full	- skip the disk when a level 0 is due, to allow full backups
#		  outside Amanda, eg when the machine is in single-user mode.
#   skip-incr	- skip the disk when the level 0 is NOT due.  This is used in
#		  archive configurations, where only full dumps are done and
#		  the tapes saved.
#   starttime	- delay the start of the dump?  Default: no delay
#   strategy	- set the dump strategy.  Valid strategies are currently:
#		  "standard" - the standard one.
#		  "nofull"   - do level 1 dumps every time.  This can be used,
#			       for example, for small root filesystems that
#			       only change slightly relative to a site-wide
#			       prototype.  Amanda then backs up just the
#			       changes.
#		  "noinc"    - do level 0 dumps every time.
#		  "skip"     - skip all dumps.  Useful for sharing a single
#			       disklist in several configurations.
#		  "incronly" - do only incremental dumps. This is similar
#                              to strategy 'nofull', but will increase
#                              the dump level as usual. Full dumps will
#                              only be performed when an 'amadmin force' 
#                              has been issued 
#		  Default: [strategy standard]
# tape_splitsize - (optional) split dump file into pieces of a specified size.
#		  This allows dumps to be spread across multiple tapes, and can
#		  potentially make more efficient use of tape space.  Note that
#		  if this value is too large (more than half the size of the
#		  average dump being split), substantial tape space can be
#		  wasted.  If too small, large dumps will be split into
#		  innumerable tiny dumpfiles, adding to restoration complexity.
#		  A good rule of thumb, usually, is 1/10 of the size of your
#		  tape.  Default: [disabled]
# split_diskbuffer - (optional) 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.
#		  Default: [none]
# fallback_splitsize - (optional) When dumping a split dump  in  PORT-WRITE
#                 mode, if no split_diskbuffer is specified (or if we somehow
#                 fail to use our split_diskbuffer), we must buffer split
#                 chunks in memory.  This specifies the maximum size split
#                 chunks can be in this scenario, and thus the maximum amount
#                 of memory consumed for in-memory splitting.  Default: [10m]
#
# Note that you may specify previously defined dumptypes as a shorthand way of
# defining parameters.

###
# dumptypes for all coolheads.com hosts:
###

define dumptype global {
    comment "Global definitions"
    # This is quite useful for setting global parameters, so you don't have
    # to type them everywhere.  All dumptype definitions in this sample file
    # do include these definitions, either directly or indirectly.
    # There's nothing special about the name `global'; if you create any
    # dumptype that does not contain the word `global' or the name of any
    # other dumptype that contains it, these definitions won't apply.
    # Note that these definitions may be overridden in other
    # dumptypes, if the redefinitions appear *after* the `global'
    # dumptype name.
    tape_splitsize 500Mb
    holdingdisk REQUIRED
    program "GNUTAR"
    compress client fast
    index yes
    ssh_keys "/home/amanda/.ssh/id_rsa"
    auth "ssh"
}

define dumptype default {
    global
}

## amati ##
define dumptype amatiSlash {
    global
    comment "root (i.e., 'slash') filesystem for amati"
    exclude list "/home/amanda/coolheads/amatiSlash-excludes"
}
define dumptype amatiHome {
    global
    exclude list "/home/amanda/coolheads/amatiHome-excludes"
}
define dumptype amatiWww {
    global
    exclude list "/home/amanda/coolheads/amatiWww-excludes"
}
define dumptype amatiWwwCoolheads {
    global
    exclude list "/home/amanda/coolheads/amatiWwwCoolheads-excludes"
}
define dumptype amatiWwwCoolheadsSecureDocsGuestIrs {
    global
    exclude list "/home/amanda/coolheads/amatiWwwCoolheadsSecureDocsGuestIrs-excludes"
}
define dumptype amatiWwwCoolheadsSecureDocsGuestIrsCas {
    global
    exclude list "/home/amanda/coolheads/amatiWwwCoolheadsSecureDocsGuestIrsCas-excludes"
}
define dumptype amatiWwwInfoloom {
    global
    exclude list "/home/amanda/coolheads/amatiWwwInfoloom-excludes"
}
define dumptype amatiWwwInfoloomSecureDocsGuestIrs {
    global
    exclude list "/home/amanda/coolheads/amatiWwwInfoloomSecureDocsGuestIrs-excludes"
}
define dumptype amatiWwwInfoloomSecureDocsGuestIrsCas {
    global
    exclude list "/home/amanda/coolheads/amatiWwwInfoloomSecureDocsGuestIrsCas-excludes"
}
define dumptype amatiWwwInfoloomSecureDocsGuestIrsReports {
    global
    exclude list "/home/amanda/coolheads/amatiWwwInfoloomSecureDocsGuestIrsReports-excludes"
}


## bruno ##
define dumptype brunoSlash {
    global
    comment "root (i.e., 'slash') filesystem for bruno"
    exclude list "/home/amanda/coolheads/brunoSlash-excludes"
}
define dumptype brunoHome {
    global
    exclude list "/home/amanda/coolheads/brunoHome-excludes"
}
define dumptype brunoHomeSrn {
    global
    exclude list "/home/amanda/coolheads/brunoHomeSrn-excludes"
}
define dumptype brunoHomeSrnIrs {
    global
    exclude list "/home/amanda/coolheads/brunoHomeSrnIrs-excludes"
}


## dimanche ##
define dumptype dimancheSlash {
    global
    comment "root (i.e., 'slash') filesystem for dimanche"
    exclude list "/home/amanda/coolheads/dimancheSlash-excludes"
}
define dumptype dimancheHome {
    global
    exclude list "/home/amanda/coolheads/dimancheHome-excludes"
}
define dumptype dimancheHomeVtn {
    global
    exclude list "/home/amanda/coolheads/dimancheHomeVtn-excludes"
}
define dumptype dimancheHomeVtnIrs {
    global
    exclude list "/home/amanda/coolheads/dimancheHomeVtnIrs-excludes"
}

## lazarus ##
define dumptype lazarusSlash {
    global
    comment "root (i.e., 'slash') filesystem for lazarus"
    exclude list "/home/amanda/coolheads/lazarusSlash-excludes"
}
define dumptype lazarusHome {
    global
    exclude list "/home/amanda/coolheads/lazarusHome-excludes"
}
define dumptype lazarusHomeVtn {
    global
    exclude list "/home/amanda/coolheads/lazarusHomeVtn-excludes"
}
define dumptype lazarusHomeVtnIrs {
    global
    exclude list "/home/amanda/coolheads/lazarusHomeVtnIrs-excludes"
}

## manche ##
define dumptype mancheSlash {
    global
    comment "root (i.e., 'slash') filesystem for manche"
    exclude list "/home/amanda/coolheads/mancheSlash-excludes"
}
define dumptype mancheHome {
    global
    exclude list "/home/amanda/coolheads/mancheHome-excludes"
}



# network interfaces
#
# These are referred to by the disklist file.  They define the attributes
# of the network interface that the remote machine is accessed through.
# Notes: - netusage above defines the attributes that are used when the
#          disklist entry doesn't specify otherwise.
#        - the values below are only samples.
#        - specifying an interface does not force the traffic to pass
#          through that interface.  Your OS routing tables do that.  This
#          is just a mechanism to stop Amanda trashing your network.
# Attributes are:
#	use		- bandwidth above which amanda won't start
#			  backups using this interface.  Note that if
#			  a single backup will take more than that,
#			  amanda won't try to make it run slower!

define interface local {
    comment "a local disk"
    use 1000 kbps
}

define interface eth0 {
    comment "100 Mbps ethernet"
    use 4000 kbps
}

# You may include other amanda configuration files, so you can share
# dumptypes, tapetypes and interface definitions among several
# configurations.

#includefile "/home/amanda/amanda.conf.main"
