准备好两台机器,一台用作server,一台用作client

在两台服务器上都配置一下域名 vim /etc/hosts

  1. 192.168.1.102 server
  2. 192.168.1.103 client

服务端安装配置

版本要看清楚,此次安装以3.3.7为例

yum install amanda*

amanda运行在xinetd上,需要安装一下其他配套的环境

yum install xinetd gnuplot perl-ExtUtils-Embed

首先,我们将使某些目录Uisng root用户,但确保并确认Amanda用户,可能是”Amandabackup”或者”Amanda”或者”备份”,具体取决于我们安装的Amanda如何。
我们正在使用默认的”amandabackup”以分配以下目录结构的所有权。

mkdir -p /amanda /etc/amanda
chown amandabackup /amanda /etc/amand

切换到amandabackup用户运行以下命令

[root@localhost ~]# su - amandabackup
-bash-4.2$ mkdir -p /amanda/vtapes/slot{1,2,3,4}
-bash-4.2$ mkdir -p /amanda/holding
-bash-4.2$ mkdir -p /amanda/state/{curinfo,log,index}
-bash-4.2$ mkdir -p /etc/amanda/MyConfig

所有数据都将在”/amanda”文件夹下,但我们可以随时随地放置它们

现在,我们将在”/etc/amanda/MyConfig /‘目录中添加”amanda.conf”文件,其中包含以下内容。
这是Amanda,Advanced Maryland自动网络磁盘Archiver的主要配置文件。

vi /etc/amanda/MyConfig/amanda.conf

注意这个MyConfig命名,后面要用到

org "MyConfig"
mailto "xxx@xxx.com"
infofile "/amanda/state/curinfo"
logdir "/amanda/state/log"
indexdir "/amanda/state/index"
dumpuser "amandabackup"
tpchanger "chg-disk:/amanda/vtapes"
labelstr "MyData[0-9][0-9]"
autolabel "MyData%%" EMPTY VOLUME_ERROR
netusage  8000 Kbps    # maximum net bandwidth for Amanda, in KB per sec

bumpsize 20 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 300        # number of seconds per filesystem for estimates.
dtimeout 1800        # number of idle seconds before a dump is aborted.
ctimeout 30        # maximum number of seconds that amcheck waits
usetimestamps yes
device_output_buffer_size 1280k
tapecycle 4
dumpcycle 3 days
amrecover_changer "changer"
tapetype "TEST-TAPE"
define tapetype TEST-TAPE {
    length 100 mbytes
    filemark 4 kbytes
}
define dumptype simple-gnutar-local {
    auth "local"
    compress none
    program "GNUTAR"
}
define dumptype simple-gnutar-remote {
    compress none
    program "GNUTAR"
}
holdingdisk hd1 {
    directory "/amanda/holding"
    use 50 mbytes
    chunksize 1 mbyte
}

有许多配置参数可以控制Amanda程序的行为。
所有有默认值,因此如果默认值合适,则无需在amanda.conf中指定参数。
我们可以在”/etc/amanda/DailySet1 /‘目录下找到原始Amanda配置文件。

接下来,我们将添加一个具有单个磁盘列表条目(DLE)的”磁盘列表”文件。
“磁盘列表”文件确定Amanda将备份哪些磁盘。
该文件包含includeDile指令或者磁盘表条目(DLE)。
一般用法是将DLE描述为分区或者文件系统。

-bash-4.2$ vi /etc/amanda/MyConfig/disklist

加一行

表示备份本地 /etc目录

localhost /etc simple-gnutar-local

Amanda备份配置

使用amandabackup用户

su - amandabackup
-bash-4.2$ amcheck MyConfig

Amcheck在Amanda磁带服务器主机和Amanda客户端主机上运行许多自检。

测试结果是积极的,因为我们已经看到没有发现迫使我们前进的这种错误。
运行备份的工具是’amdump’。
只需要配置名称,它不会在其外面打印到终端的任何内容。
让我们作为Amanda用户运行,如下所示。

-bash-4.2$ amdump MyConfig

几秒钟,你可能会没有输出。
在下一行上,运行以下命令,该命令应在输出中给出”0”。
如果我们看到以外的其他东西,则备份失败。

-bash-4.2$ echo $?

Amdump是Amanda备份过程的主要界面。
它加载指定的配置,并尝试备份”磁盘列表”指定的每个磁盘。
Amdump通常由”Cron”运行,我们将在下步步骤中向我们展示。

但是,如果你看到零以外的东西,那么它意味着备份失败。
在这种情况下,我们可以通过使用”amreport”命令以及配置文件,查看备份发生的内容的方便报告。

-bash-4.2$ amreport MyConfig

备份计划配置

每天执行”Amdump”,可以通过Cron守护程序安排。
没有人想记得每晚都要运营备份。
这就是我们有Cron的原因!让我们添加以下行。

-bash-4.2$ crontab -e
0 17 * * * amandabackup /usr/sbin/amcheck -m MyConfig
15 2 * * * amandabackup /usr/sbin/amdump MyConfig

保存并关闭CRONTAB编辑器。
这些行将每天在17:00和2:15安排备份。

如果我们登录到root用户,那么我们可以使用以下命令为Amada用户添加Cron作业。

su amadabackup -c "crontab -e"

但取决于我们如何安装的Amanda,我们可能需要在发现发行版的amanda工具的位置之后更改”/usr/sbin”到其他内容。
我们可以使用命令行上的”哪个AMCHECK”来查找进程位置。

# which amcheck
/usr/sbin/amcheck

Amcheck可以给我们发电子邮件给我们在CRONTAB中使用的”-m”标志的问题,AMDUMP会愉快地向我们发送每晚报告。
自动化如果你从未发现有些东西被打破了。
因此,只需将”邮件”配置添加到”Amanda.conf”文件中。

-bash-4.2$ vi /etc/amanda/MyConfig/amanda.conf

加一行

mailto "user@igiftidea.com"

客户端安装配置

在客户端服务器安装,版本与server端一致

yum install amanda-client xinetd

需要在修改一下amanda.conf配置文件

vi /etc/amanda/MyConfig/amanda.conf

添加以下内容,用于给远程客户端备份,以tcp的方式连接,auth默认以bsdtcp的方式认证,所以可以不配置auth

define dumptype simple-gnutar-remote {
    compress none
    program "GNUTAR"
}

然后在服务端服务器的磁盘列表文件添加一行针对客户端的配置

vi /etc/amanda/MyConfig/disklist
client /etc simple-gnutar-remote

也是用来备份/etc目录

在客户端机器用于指定Amanda Server位置的’/var/lib/amanda/.amandahosts’文件使打开相同的文件并添加以下条目,然后保存更改。

vi /var/lib/amanda/.amandahosts
server amandabackup

备份还原

在server端进行操作

server服务器同时安装amanda的server和client

修改/etc/amanda/amanda-client.conf配置文件

vim /etc/amanda/amanda-client.conf

修改的地方

conf "MyConfig"        # your config name

index_server "localhost"
tapedev "changer"
auth "local"

以上的配置是将备份提取出来的文件会放到用户进入的目录中

创建一个用于提取备份文件的目录,然后要进入这个目录

mkdir /tmp/test-recovery
cd /tmp/test-recovery

要以root用户进行命令执行

amrecover

amrecover是Amanda提供的一个用于提取备份文件的客户端工具

[root@localhost test-recovery]# amrecover MyConfig

指定要备份还原的域名,指定client

amrecover> sethost client
200 Dump host set to client.

指定要备份还原的目录

amrecover> setdisk /data2
200 Disk set to /data2.

可以查看该目录下有哪些文件

amrecover> ls
2021-08-26-17-16-52 .
2021-08-26-13-44-11 a6
2021-08-26-13-44-11 a5
2021-08-26-13-44-11 a4
2021-08-26-13-44-11 a3
2021-08-26-13-44-11 a2
2021-08-26-13-44-11 a1
2021-08-26-13-44-11 .

添加一下要备份的文件,比如我要提取a1,a3文件,如果是add . 就是直接把当前目录下所有文件提取

amrecover> add a1
Added file /a1
amrecover> add a3
Added file /a3

使用extract命令提取

amrecover> extract

Extracting files using tape drive changer on host localhost.
The following tapes are needed: MyData02

Extracting files using tape drive changer on host localhost.
Load tape MyData02 now
Continue [?/Y/n/s/d]? Y
Restoring files into directory /root/test-recovery
All existing files in /root/test-recovery can be deleted
Continue [?/Y/n]? Y

./a1
./a3

退出之后就可以在当前目录看到提取出来的文件了

amrecover> exit
200 Good bye.
[root@localhost test-recovery]# ls
a1  a3

虽然 amrecover 是专为用户设计的,但大多数 Amanda 管理员只在 Amanda 服务器上运行 amrecover,然后使用其他一些机制(如 scp 或 rsync)将已恢复的文件传输到位。