RHEL 5 + Amanda

所需套件:
amanda-2.5.0p2-4.i386.rpm         
amanda-devel-2.5.0p2-4.i386.rpm
amanda-client-2.5.0p2-4.i386.rpm  
amanda-server-2.5.0p2-4.i386.rpm
# rpm -ivh amanda-2.5.0p2-4.i386.rpm
warning: amanda-2.5.0p2-4.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing...                ########################################### [100%]
   1:amanda                 ########################################### [100%]
# rpm -ivh amanda-devel-2.5.0p2-4.i386.rpm
warning: amanda-devel-2.5.0p2-4.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing...                ########################################### [100%]
   1:amanda-devel           ########################################### [100%]
# rpm -ivh amanda-server-2.5.0p2-4.i386.rpm
warning: amanda-server-2.5.0p2-4.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing...                ########################################### [100%]
   1:amanda-server          ########################################### [100%]
# rpm -ivh amanda-client-2.5.0p2-4.i386.rpm
warning: amanda-client-2.5.0p2-4.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing...                ########################################### [100%]
   1:amanda-client          ########################################### [100%]
#

一.客户端配置
1.启动amanda服务
在客户端编辑/etc/xinetd.d/amanda文件,将其中的“disable=yes”改为“disable=no”,如下:
service amanda{        socket_type             = dgram        protocol                = udp        wait                    = yes        user                    = amanda        group                   = disk        server                  = /usr/lib/amanda/amandad        disable                 = no}
保存退出,重启xinetd服务。

# service xinetd restart停止 xinetd:                                              [确定]启动 xinetd:                                              [确定]
2.授予备份此客户端的Amanda服务器
# vi /var/lib/amanda/.amandahosts
ns2 amanda
ns2 root

将服务器的主机名以及用于备份的用户名写在.amandahosts中(这里的Amanda服务器名为ns2,用于备份的帐号为:amanda),同时,也需要把服务器和root用户的对应关系加在里面,否则在恢复数据的时候将不能访问服务器。在这里设置完Amanda服务器的主机名后,同时也要在 /etc/hosts文件里面指定Amanda服务器IP和主机名的对应关系,否则Amanda客户端将不能访问服务端。

这里在/etc/hosts里解析一下ns2

# vi /etc/hosts

10.0.0.100   ns2

确保客户端能与服务器通讯

# ping ns2
PING ns2 (10.0.0.100) 56(84) bytes of data.
64 bytes from ns2.atyu30.com (10.0.0.100): icmp_seq=1 ttl=64 time=0.419 ms
64 bytes from ns2.atyu30.com (10.0.0.100): icmp_seq=2 ttl=64 time=0.183 ms

二,服务端配置

这里采用磁盘来作备份,即disk-to-disk方式

1./etc/amanda/DailySet1/amanda.conf

Amanda的所有备份策略和执行命令,均通过 “DailySet1”这个目录下的几个配置文档来定义。
下面是部分需要修改的参数

# vi amanda.conf
org "ns2"     //设置使用amanda的单位或者机构的名称
mailto "amanda@atyu30.com"//指定将报告发送的邮件地址
dumpuser amanda //指定使用Amanda备份的用户,默认为amanda用户
dumpcycle 7days //设置备份周期的长度,单位也可以是weeks,在这里设置7days和1weeks的效果是一样的。
runspercycle 7 //设置每个备份周期内amanda运行的次数
tapetype HARD-DISK //设置存储类型
labelstr "^DailySet1-[0-9][0-9]*$"//定义卷标格式
logdir "/var/log/amanda" //指定日志存放路径,默认存放在amanda配置目录下
tpchanger "chg-disk" //更换磁带的脚本
changerfile "/etc/amanda/DailySet1/changer"//
tapedev "file:/amanda/DailySet1" //指定存储位置
define dumptype root-tar { //定义转存储类
   global //调用前面定义的global类型
   program "GNUTAR" //使用GNU tar作为备份程序,默认是DUMP
   comment "root partitions dumped with tar" //描述该类型的信息
   compress none //不采用压缩
   index yes //备份集索,必须为yes(默认为no),否则在恢复的时候将不能找到可恢复的索引信息
   priority low


}define tapetype HARD-DISK { //定义磁盘类型   comment "disk-to-disk"   length 1000 mbytes}
2. 创建虚拟磁带 虚拟磁带的目录结构如下: slot_root_dir -|               |- info               |- data -> slot1/               |- slot1/               |- slot2/               |- ...               |- slotn/
slot_root_dir是tapedev所指定的路径,而slotn中的n的值应和tapecycle的值一致。如下:

# mkdir /amanda/DailySet1
# cd /amanda/DailySet1/
# mkdir slot1 slot2
# touch info
# ln -s slot1 data
# chown -R amanda.disk /amanda
3. 添加备份项,这里备份10.0.0.1上的data目录

# vi /etc/amanda/DailySet1/disklist
10.0.0.1 /data comp-root-tar
4. 创建tapelist文件

# touch /etc/amanda/DailySet1/tapelist
# chown amanda.disk /etc/amanda/DailySet1/tapelist
5. 制作虚拟磁盘卷标 与使用磁带机一样,使用前也需要为虚拟磁盘创建卷标,如下:

# su - amanda
$ /usr/sbin/amlabel DailySet1 DailySet1-01 slot 1
changer: got exit: 0 str: 1 file:/amanda/Dailyset1
labeling tape in slot 1 (file:/amanda/Dailyset1):
rewinding, reading label, not an amanda tape (Read 0 bytes)
rewinding, writing label DailySet1-01, checking label, done.

$ /usr/sbin/amlabel DailySet1 DailySet1-02 slot 2
6. 检查配置 Amanda自带了一个检测配置文件的工具,用于检测整个Amanda服务端与客户端的配置情况。

先建立如下文件:
/etc/amanda/DailySet1 该目录下先建立如下文件
# mkdir -p /etc/amanda/DailySet1/curinfo/10.0.0.1/_var_log
# tuoch /etc/amanda/DailySet1/curinfo/10.0.0.1/_var_log/info
# mkdir -p /etc/amanda/DailySet1/curinfo/localhost/_etc
# touch /etc/amanda/DailySet1/curinfo/localhost/_etc/info
# mkdir -p /etc/amanda/DailySet1/curinfo/10.0.0.1/localhost
# mkdir -p /etc/amanda/DailySet1/index/localhost/_etc
# touch /etc/amanda/DailySet1/index/localhost/_etc/info
# mkdir -p /etc/amanda/DailySet1/index/10.0.0.1/_var_log
# chown -R amanda.disk /etc/amanda/DailySet1/curinfo
# chown -R amanda.disk /etc/amanda/DailySet1/index

权限问题很麻烦,千万不要犯晕
测试:
$ /usr/sbin/amcheck DailySet1 Amanda Tape Server Host Check Amanda Tape Server Host Check
-----------------------------
Holding disk /dumps/amanda: 3510768 KB disk space available, using 3408368 KB
slot 2: read label `DailySet1-02', date `X'

NOTE: skipping tape-writable test
Tape DailySet1-02 label ok
Server check took 0.131 seconds

Amanda Backup Client Hosts Check

--------------------------------
Client check: 1 host checked in 0.100 seconds, 0 problems found
(brought to you by Amanda 2.5.0p2)

7. 备份 Amanda中备份数据使用的程序是amdump,通常情况下放在cron里去自动执行,amdump在备份时不会提示任何的信息,可以通过查看日志文件来检查备份是否成功。

$ /usr/sbin/amdump DailySet1
8. 恢复 Amanda提供了交互式的amrecover工具来从Amanda的备份中恢复文件,它需要备份集设置了索引,也就是使用了“index yes”的设置,同时在服务端需要启动amandaidx与amidxtape进程,这两个进程也是由xinetd来管理的。在客户端恢复数据的时候必须使用root用户来运行。恢复前首先要切换到需要恢复的当前目录下,Amrecover工具的使用方法如下: # amrecover DarilySet1 -s serverhost -t serverhost 上面命令中的-s 参数表示指定存放备份集索引的服务器,-t则用于指定磁带机所在的服务器。连接成功后将会停在一个交互式的对话框。