使用DAT设备管理备份
我有机会使用DAT设备(旧的HP SuperStore DAT24)在磁带上复制。 我不想安装任何新的软件来管理这个任务。 我的一个朋友给了我这个指南。 这是西班牙文,没有关于作者的任何注释。 我只翻译了 所以,如果有人知道谁是真正的作者,请告诉我给他正确的信用。
这个指南可以被认为是了解这个东西如何工作的第一步。 然后,每个人都可以根据个人需要进行定制。
1介绍。
在本指南中,我将展示一种简单的方法来复制服务器上的磁带。 该系统专为只需在DAT磁带上访问数据的组织而设计。
它涉及到实用程序mt
( cpio
)与rsync
和一些脚本的组合。
这里描述的所有内容都在GNU / Linux下运行,我认为,可以移植到大多数BSD发行版。 当然,它在我的Ubuntu盒子上工作。
2情景。
SCSI DAT连接到服务器,服务器连接到网络(例如Internet)。 通过网络和实用程序rsync
,服务器从需要复制到磁带的服务器获取文件。
一旦我们将服务器中的数据连接到DAT设备,我们将把它们转储到一个或多个磁带。 这些进程使用cron自动执行
。
3同步服务器。
要同步服务器,我们将为我们要同步的每台服务器使用一个bash脚本。 该脚本包含远程计算机的数据(基本上是IP地址)和对包含我们不想同步的文件的文件的引用。
以下是serverA
的示例。 在这个例子中,我们假设serverA
可以通过名字访问(即我们可以通过IP解析serverA
)。
#!/bin/bash # rsync synchronization # Variables HOST=serverA # Use $HOST:/dir if directly from the remote host SOURCE=$HOST:/ LOCAL_DIR=/backups/serverA EXCLUDE_FILE=/usr/local/sbin/exclude-serverA # End Variables /usr/bin/rsync --delete -azq --numeric-ids --exclude-from="$EXCLUDE_FILE" "$SOURCE" "$LOCAL_DIR"
看脚本,我们可以看到它的作用:
HOST = serverA
要同步的服务器名称或IP。
SOURCE = $ HOST:/
目录在远程主机(serverA)上进行同步。 在这个例子中,根。
EXCLUDE_FILE = / usr / local / sbin / exclude-serverA
包含您要同步的文件的文件。 它必须采用以下格式:
proc/* tmp/* dev/* mnt/*
4没有安全访问密钥的同步。
脚本中使用的rsync
通过ssh连接工作。 连接已加密,具有与ssh连接相同的特性。 这种连接的一个特征是使用公钥基础设施 ( PKI )的可能性。 该系统允许我们通过私钥而不是密码进行验证(尽管可以组合两个验证系统)。
由于脚本由cron自动执行
,我们需要一种机制来避免手动设置密码并提供安全性。 PKI为我们提供了这种可能性。
基本上,我们需要在备份服务器(连接到DAT设备的服务器上)上创建一个公用密钥,并将其复制到serverB和serverA中。 程序如下所示:
ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/root/.ssh/id_dsa): <- Enter
Enter passphrase (empty for no passphrase): <- Enter
Enter same passphrase again: <- Enter
Your identification has been saved in /root/.ssh/id_dsa.
Your public key has been saved in /root/.ssh/id_dsa.pub.
The key fingerprint is:
xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx root@backupsrv <- I changed this line putting the "xx"
然后我们将公钥复制到目录中的每个服务器,并按照ssh(1)手册中的名称进行复制。 所以,我们会跑
man 1 ssh
确定目录和名称。 之后,我们将继续将公钥复制到所有服务器:
scp /root/.ssh/id_dsa.pub serverA:/root/.ssh/authorized_keys2
scp /root/.ssh/id_dsa.pub serverB:/root/.ssh/authorized_keys2
要检查我们是否以正确的方式进行了所有操作,我们将通过ssh连接到服务器。
ssh serverA
如果他们不要求密码,这意味着我们已经顺利。