(源自網絡)Amanda(BackUp SoftWare)的安裝與設定

Amanda的安裝與設定(新版,用HardDisk):
================================

1) 設定Client
2) 設定Server
3) 取回data


 1.設定Client (需要做Backup的電腦):
==================================
1) 使用yum install
yum install amanda
yum install amanda-client
2) Setting
a.修改/etc/xinetd.d/中amanda,使其disable設為no,然後使xientd reload一次.
b.修改"/var/lib/amanda/.amandahosts ",使server可連接到本電腦進行backup.如可讓backup.abc.com server上的amanda user可以backup 本機,則在.amandahosts裡加上:
  backup.abc.com amada
c.使Server的ip地址和host name可相互對應,即可以ip地址找到其host name,以host nameip找到其地址.
d.iptables 中開通 1024-65534 端口


 2.設定Server:
1) 使用yum install
yum install amanda
yum install amanda-server
yum install amanda-devel
yum install amanda-client
2) Setting
a.修改/etc/amanda/DailySet1/amanda.conf.(可參考sample)
vi /etc/amanda/DailySet1/amanda.conf
#
# amanda.conf - sample Amanda configuration file.  This started off life as
#               the actual config file in use at CS.UMD.EDU.
#
# If your configuration is called, say, "csd", then this file normally goes
# in /etc/amanda/csd/amanda.conf.
#

org "ns1_DailySet1"  # your organization name for reports
mailto "Email住址會使用灌水程式保護機制。你需要啟動Javascript才能觀看它"  # space separated list of operators at your site
dumpuser "amanda" # the user to run dumps under

inparallel 4  # maximum dumpers that will run in parallel
netusage  600 Kbps # maximum net bandwidth for Amanda, in KB per sec

dumpcycle 1 days # the number of days in the normal dump cycle
runspercycle 1 days    # the number of amdump runs in dumpcycle days
tapecycle 3 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
### ### ###
# WARNING: don't use `inf' for tapecycle, it's broken!
### ### ###

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

etimeout 300  # number of seconds per filesystem for estimates.
#etimeout -600  # total number of seconds for estimates.
# a positive number will be multiplied by the number of filesystems on
# each host; a negative number will be taken as an absolute total time-out.
# The default is 5 minutes per filesystem.
   

# 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.  For more information about individual tape
# changers, read docs/TAPE.CHANGERS.

# 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 1  # number of tapes to be used in a single run of amdump
#tpchanger "chg-manual" # the tape-changer glue script
tpchanger "chg-multi"
#tapedev "/dev/nst1" # the no-rewind tape device to be used
#rawtapedev "/dev/null" # the raw device to be used (ftape only)
#changerfile "/var/lib/amanda/DailySet1/changer"
#changerfile "/var/lib/amanda/DailySet1/changer-status"
changerfile "/etc/amanda/DailySet1/changer.conf"
#changerdev "/dev/null"

tapetype HARD-DISK  # what kind of tape it is (see tapetypes below)
labelstr "^DailySet2[0-9][0-9]*$" # label constraint regex: all tapes must match

# 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 round-robin.

holdingdisk hd1 {
    comment "main holding disk"
    directory "/home/amanda/DailySet1" # where the holding disk is
    use -1 Gb  # how much space can we use on it
   # a negative value mean:
   #        use all space except that value
    chunksize 10 Gb  # size of chunk if you want big dump to be
   # dumped on multiple files on holding disks
   #  N Kb/Mb/Gb split disks in chunks of size N
   #  0          split disks in INT_MAX/1024 Kb chunks
   # -N Kb/Mb/Gb dont split, dump larger
   #             filesystems directly to tape
   #             (example: -2 Gb)
    }
#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. 

# 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.

infofile "/var/lib/amanda/DailySet1/curinfo" # database filename
logdir   "/var/lib/amanda/DailySet1"  # log directory
indexdir "/var/lib/amanda/DailySet1/index" # index directory
#tapelist "/var/lib/amanda/DailySet1/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)

# dumpuser "operator"     # the user to run dumps under
# 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 "/usr/local/amanda/config/lbl.exabyte.ps"
# }

define tapetype HARD-DISK {
    comment "Hard disk instead of tape"
    length 130 gbytes
}

define tapetype HP-DAT24 {
    comment "HP SureStore DAT24, no compression"
    comment "DDS-3 125 meter tape"
    length 11703 mbytes         #12GB
    filemark 0 kbytes
    speed 1000 kbytes
}

define tapetype DAT40i {
    comment "just produced by tapetype program"
    length 19488 mbytes
    filemark 538 kbytes
    speed 3073 kbytes
}

define tapetype QIC-60 {
    comment "Archive Viper"
    length 60 mbytes
    filemark 100 kbytes  # don't know a better value
    speed 100 kbytes  # dito
}

define tapetype DEC-DLT2000 {
    comment "DEC Differential Digital Linear Tape 2000"
    length 15000 mbytes
    filemark 8 kbytes
    speed 1250 kbytes
}

# Email住址會使用灌水程式保護機制。你需要啟動Javascript才能觀看它
# in amanda-users (Thu Dec 26 01:55:38 MEZ 1996)
define tapetype DLT {
    comment "DLT tape drives"
    length 20000 mbytes  # 20 Gig tapes
    filemark 2000 kbytes # I don't know what this means
    speed 1536 kbytes  # 1.5 Mb/s
}

define tapetype SURESTORE-1200E {
    comment "HP AutoLoader"
    length 3900 mbytes
    filemark 100 kbytes
    speed 500 kbytes
}

define tapetype EXB-8500 {
    comment "Exabyte EXB-8500 drive on decent machine"
    length 4200 mbytes
    filemark 48 kbytes
    speed 474 kbytes   
}

define tapetype EXB-8200 {
    comment "Exabyte EXB-8200 drive on decent machine"
    length 2200 mbytes
    filemark 2130 kbytes
    speed 240 kbytes   
}

define tapetype HP-DAT {
    comment "DAT tape drives"
    # data provided by Rob Browning <Email住址會使用灌水程式保護機制。你需要啟動Javascript才能觀看它>
    length 1930 mbytes
    filemark 111 kbytes
    speed 468 kbytes
}

define tapetype DAT {
    comment "DAT tape drives"
    length 1000 mbytes  # these numbers are not accurate
    filemark 100 kbytes  # but you get the idea
    speed 100 kbytes
}

define tapetype MIMSY-MEGATAPE {
    comment "Megatape (Exabyte based) drive through Emulex on Vax 8600"
    length 2200 mbytes
    filemark 2130 kbytes
    speed 170 kbytes  # limited by the Emulex bus interface, ugh
}


# 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" and "krb4".  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.
#    "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.
#    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
#   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.
#    Default: include all files
#   holdingdisk - should the holding disk be used for this dump.  Useful for
#    dumping the holding disk itself.  Default: [holdingdisk yes]
#   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]
#   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" and
#    "GNUTAR".  Default: [program "DUMP"].
#   record - record the dump in /etc/dumpdates.  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.
#          Unfortunately, this is not currently
#          implemented.  Use `dumpcycle 0'
#          instead.
#    "skip"     - skip all dumps.  Useful for sharing a single
#          disklist in several configurations.
#    Default: [strategy standard]
#
# Note that you may specify previously defined dumptypes as a shorthand way
# of defining parameters.

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.
    # You may want to use this for globally enabling or disabling
    # indexing, recording, etc.  Some examples:
    # index yes
    # record no
}

define dumptype always-full {
    global
    comment "Full dump of this filesystem always"
    compress none
    priority high
    dumpcycle 0
}

define dumptype root-tar {
    global
    program "GNUTAR"
    comment "root partitions dumped with tar"
    compress none
    index
#    exclude list "/usr/local/lib/amanda/exclude.gtar"
    priority low
}

define dumptype user-tar {
    root-tar
    comment "user partitions dumped with tar"
    priority medium
}

define dumptype high-tar {
    root-tar
    comment "partitions dumped with tar"
    priority high
}

define dumptype comp-root-tar {
    root-tar
    comment "Root partitions with compression"
    compress client fast
}

define dumptype comp-user-tar {
    user-tar
    compress client fast
}

define dumptype holding-disk {
    global
    comment "The master-host holding disk itself"
    holdingdisk no # do not use the holding disk
    priority medium
}

define dumptype comp-user {
    global
    comment "Non-root partitions on reasonably fast machines"
    compress client fast
    priority medium
}

define dumptype nocomp-user {
    comp-user
    comment "Non-root partitions on slow machines"
    compress none
}

define dumptype comp-root {
    global
    comment "Root partitions with compression"
    compress client fast
    priority low
}

define dumptype nocomp-root {
    comp-root
    comment "Root partitions without compression"
    compress none
}

define dumptype comp-high {
    global
    comment "very important partitions on fast machines"
    compress client best
    priority high
}

define dumptype nocomp-high {
    comp-high
    comment "very important partitions on slow machines"
    compress none
}

define dumptype nocomp-test {
    global
    comment "test dump without compression, no /etc/dumpdates recording"
    compress none
    record no
    priority medium
}

define dumptype comp-test {
    nocomp-test
    comment "test dump with compression, no /etc/dumpdates recording"
    compress client fast
}

define dumptype comp-root-no-tar {
    root-tar
    compress client best
}

define dumptype comp-root-no-shadow {
    root-tar
    compress client best
    exclude "./shadow*"
}

define dumptype comp-root-tar-a-d {
    root-tar
    comment "Root partitions with compression"
    compress client best
    exclude "./[e-z0-9]*"
}

define dumptype comp-root-tar-e-h {
    root-tar
    comment "Root partitions with compression"
    compress client best
    exclude "./[a-di-z0-9]*"
}

define dumptype comp-root-tar-i-l {
    root-tar
    comment "Root partitions with compression"
    compress client best
    exclude "./[a-hm-z0-9]*"
}

define dumptype comp-root-tar-m-p {
    root-tar
    comment "Root partitions with compression"
    compress client best
    exclude "./[a-lq-z0-9]*"
}

define dumptype comp-root-tar-q-t {
    root-tar
    comment "Root partitions with compression"
    compress client best
    exclude "./[a-pu-z0-9]*"
}
define dumptype comp-root-tar-u-z {
    root-tar
    comment "Root partitions with compression"
    compress client best
    exclude "./[a-t0-9]*"
}

define dumptype comp-root-tar-other {
    root-tar
    comment "Root partitions with compression"
    compress client best
    exclude "./[a-z]*"
}

# 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 "10 Mbps ethernet"
    use 400 kbps
}

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

#includefile "/usr/local/amanda.conf.main"


b.修改/etc/amanda/DailySet1/disklist,增加要backup的資料路徑.(可參考sample)
vi /etc/amanda/DailySet1/disklist
# sample Amanda2 disklist file, derived from CS.UMD.EDU's disklist
#
# If your configuration is called, say, "csd2", then this file normally goes
# in /etc/amanda/csd2/disklist.
#
# File format is:
#
# hostname diskdev dumptype
#
# where the dumptypes are defined by you in amanda.conf.


# At our site, root partitions have a different dumptype because they
# are of lower priority; they don't contain user data, and don't change
# much from the department prototype.  In a crunch, they can be left for
# last or skipped.

## A SPARCstation 1+
#salty sd0a comp-root
#salty sd0g comp-user
#salty sd1g comp-user
#salty sd2a comp-root
#salty sd2g comp-user
#salty sd3c comp-user
#
## A DECstation 3100
#slithy rz1a comp-root
#slithy rz1g comp-user
#slithy rz3a comp-root
#slithy rz3g comp-user
#
## We don't run compression on the master host since it is going to be
## busy enough running amanda.
#master sd0a nocomp-root -1 local
#master sd0g nocomp-user -1 local
## note: -1 is a placeholder for the spindle number
## the holding disk can't be dumped to itself, it uses a disktype that
## specifies the "no-hold" option (see amanda.conf).
#master sd1c holding-disk -1 local
#
## The chairman's disk is high priority to make sure it gets done.
#bigwig sd0a comp-root
#bigwig sd0g comp-high
## Likewise the named databases in the root partition on our primary
## nameserver.  Also, compression is turned off because we don't want
## to create any unnecessary load on this baby (it's only a Sun3).
#bozo        sd0a nocomp-high
#bozo        sd0g nocomp-user
#bozo        sd4c nocomp-user
#
## Dump Joe's NetBSD machine, with the mounted MS-DOS partition dumped
## using tar.
#joespc  wd0a comp-root
#joespc  wd0e comp-user
#joespc /msdos comp-user-tar
#
## Some really slow machines, like Sun2's and some Vaxstations, take
## forever to compress their dumps: it's just not worth it.
#
## A Sun2
#cleo     sd0a nocomp-root
#cleo     sd0g nocomp-user
## A VaxStation
#susie         rz8a nocomp-root
#susie         rz8g nocomp-user
#
## and so on ... well, you get the idea

#ns1
ns1.jason-tang.com /etc comp-root-no-shadow
ns1.jason-tang.com /var/named comp-root-no-tar
ns1.jason-tang.com /home/jason comp-root-tar-a-d
ns1.jason-tang.com /home/jason/ comp-root-tar-e-h
ns1.jason-tang.com /home/jason/. comp-root-tar-i-l
ns1.jason-tang.com /home/jason/./ comp-root-tar-m-p
ns1.jason-tang.com /home/jason/./. comp-root-tar-q-t
ns1.jason-tang.com /home/jason/././ comp-root-tar-u-z
ns1.jason-tang.com /home/jason/././. comp-root-tar-other
ns1.jason-tang.com /var/spool/mail comp-root-no-tar


c.建立changer.conf (可參考sample)
vi /etc/amanda/DailySet1/changer.conf
multieject 0
gravity 0
needeject 0
ejectdelay 0
statefile /var/lib/amanda/DailySet1/changer-status

firstslot 1
lastslot 3

slot 1 file:/home/amanda/DailySet1/tape01
slot 2 file:/home/amanda/DailySet1/tape02
slot 3 file:/home/amanda/DailySet1/tape03
d.建立虛擬tape的目錄
mkdir  -p  /home/amanda/DailySet1/tape01/data
mkdir  -p  /home/amanda/DailySet1/tape02/data
mkdir  -p  /home/amanda/DailySet1/tape03/data
chown -R amanda.disk /home/amanda
chmod -R 770 /home/amanda
e.標記label
轉換成amanda 身份.
su amanda
amlabel DailySet1 DailySet101 slot 1
amlabel DailySet1 DailySet102 slot 2
amlabel DailySet1 DailySet103 slot 3
f.測試是否正常.
轉換成amanda 身份.
su amanda
/usr/sbin/amcheck DailySet1
g.排除問題後,則可以定時運行 /usr/sbin/amdump DailySet1,作定時BackUp
crontab -e
0 0 * * * /usr/sbin/amdump DailySet1


 3.取回data:
=====================
到适當的位置,用root的身份運行"/usr/sbin/amrestore backupfiles" 即可得到backup,再用tar -xvf 解開所有files
如取回ns100.newsbook.net中的etc
1.)去相應的位置找到文件 "00007.ns100.newsbook.net._etc.0"
2.)/usr/sbin/amrestore 00007.ns100.newsbook.net._etc.0 生成文件ns100.newsbook.net._etc.20060326.0
3.)tzr -xvf ns100.newsbook.net._etc.20060326.0 則得到所有files