安装、使用 Network Backup System
NBS是什么?
------------
NBS 是 Network Backup System 的缩写 , 这个系统主要是用来备份您的网络主机的资料 , 简单来说 , NBS 是一 个 client/server 架构的系统 , 也就是说您必须提供一台机器来提供备份服务(安装有磁带机或其他备份设备 , 一旦您 的 nbsd (NBS DAEMON) 成功地跑起来 , 您就能提供网路上的每一台网络主机备份的服务 , 并且还能提供恢复的服 务 , 一旦主机数据毁损 ,即可利用此功能将数据恢复 .
NBS 原理
--------
NBS 使用 TCP/IP 为通讯协议 , 并采取 TCP 固定连接 , 数据安全性较高 , NBS采用 PORT 5000 为其通讯端口 , 备份 主机可以同时提供多台网络主机同时备份 , NBS的运作状况如下所示 :
1
┌───────┐ <-------- request ---------- ┌───────┐
│ Backup │ 2 │ Network │
│ Server │ ----------- OK ------------> │ Host │
│ │ 3 │ │
└───────┘ <--------- data ------------ └───────┘
运行 nbsd 提供备份服务 1. 利用 setnbs 设定环境
nbsd 读取 /etc/backup.servers来 2. 编辑 备份描述档(请参考
{ How_To_Use).
1.确认那台主机可以取得服务 3. 跑 nbs 来执行备份或回存
2.确认可取得服务的主机要将
数据备份到那个目录.
3.确认可取得服务的主机的密码.
}
一旦权限确认成功 , 即可开始提供服务.
支持平台
--------
目前该系统仅在 FreeBSD 和 Linux 上测试过 , 其它 Unix 系统如果提供 socket应能正常运行 .
如何取得
--------
[url=http://www.pccode.net]/NetBackupSystem-1.1.1r.tgz"ftp://weekend.3322.org/FreeBSD/NetBackupSystem-1.1.1r.tgz
Server 端的安装
---------------
要安装 Server 端程序 , 解包后,进入 server 目录 , 编辑 Makefile 这个文件里的一个叫 INSTALL_DIR 的变量 , 这个 变量用来设定编译过后的程序该安装在哪个目录下 , 默认目录为 /usr/local/sbin , 改好后只要输入
make
即可完成程序的安装 , 如果默认的目录没变 , 在 /usr/local/sbin 下应该会有一个叫 nbsd 的 Daemon 程序 , 运行它 , 然 后 , 输入
telnet (你的 ip address) 5000
如果出现如下的信息的话 , 表示 nbsd 已经开始正常运作了 :
Trying 192.168.1.1...
Connected to polaris.
Escape character is '^]'.
Connection closed by foreign host.
然后 , 请将下面的脚本写入你的系统初始文件里 , 如 rc.local(FreeBSD下是建立/usr/local/etc/nbsd.sh,方法自己查 FAQ) , 让每次系统一启动就能自动执行此 Daemon :
echo "Network Backup System Daemon ..."
/usr/local/sbin/nbsd
至此 , Server 端已经安装完成 , 请参阅 How_To_Use 取得更详细的使用说明 .
Client 端的安装
---------------
安装 client 端程序 , 解包后进入 client 这个目录 ,然后编辑 Makefile 里的一个叫作 INSTALL_DIR 的变量 , 这个变量 用来指定 client 端程序该放到那个目录 ,如有需要请将其改成您所要安装的目录 , 默认的目录为 /usr/local/bin , 改好 后请打
make all
即可将程序编译安装完成 , 装完后 , 如果没有更改默认目录 , 则你会在
/usr/local/bin 下看到两个档 nbs 和 setnbs , nbs 是该系统的 client 端程序 ,而 setnbs 则是用来设置环境用的 , 关于 client 端的详细用法 , 请参阅 How_To_Use这个档有关 client 端的说明 .
如何使用 NBS 系统 :
Server 端
---------
如果您的机器是要做为备份主机的话 , 请按照安装程序 , 将 server 端程序编译完成, 然后您会在 /etc/ 这个目录下发 现有一个叫做 backup.servers 的文件, 这个文件是用来设定那一台主机可以将数据备份到您的备份主机上 , 这个档主 要有三个字段 , 分别为: (每个字段都须以“:”隔开)
主机IP:备份路径:主机口令;
分述如下:
1. 主机 IP(or Domain Name) -> 即为要将数据备份到备份主机的 IP 地址或是Domain Name .
2. 备份路径 -> 即当欲备份的主机将数据传过来时要放置的目录 .
3. 主机口令 -> 即欲备份主机欲取得备份服务时所需传送过来的密码 .
每一台欲备份主机都需在此文件内有一行描述 , 每行描述都须以『;』作为结尾 , 下面是一个例子 :
假设有一台主机 ip 地址为 192.168.1.4 , 其数据将备份至备份主机的 /backup/polaris
下 , 且其密码被设定为 test , 则此主机的描述行应该同下:
192.168.1.4:/backup/polaris:test;
当您将您网络上欲备份的主机的描述都写入此档后 , 这些主机就可以执行client 端的程序 ,开始将数据备份过来 . 至 此 Server 端的设定工作已经完成 , 需要注意的是 ,此描述文件内的『密码字段』并未编码 , 因此管 理 Backup Server 的管理员需特别注意此档案的权限 , 请将其设为只有 root 可以读写 ,即 chmod 0600 /etc/ backup.servers, 否则一旦被一般 user 看见 , 则此 user 如果又在某一台主机拥有账号 , 那么他就能将其数据备份到此 备份主机上 , 所以随时保持此文件只有 root 能读写是很重要的 .
而密码栏的设定可以包括除了『;』之外的可见字符和空格 , 也就是说您可以设定一长字串当作密码 , 密码的给定需 要在 Server 端设好 , 也就是说 Backup Server 的管理员必须将密码设定好后 , 再告诉欲备份主机的管理员 , 让其 在 client 端作设定 .
另外 , 密码字段的密码至少需要 4 个字符 , 因为密码是用来当作数据传送时的 KEY ,所以一定要设定 , 且至少需 要 4 个字符 .
当您的备份系统开始运作后 , 一旦有 client 端一有 request , nbsd 会将 client端的访问记录放在 /var/log/nbsd 这个文件 内 , 备份主机管理员应随时查看这个文件 .
Client 端
---------
如果您的机器是某台备份主机的 client 端 , 请按照安装程序将 client 程序安装完成, 在安装完成 client 端程序后 , 请 向您的 备份主机 的管理员取得下面的数据 :
1 . 您的备份密码 .
2 . 备份主机的 IP Address 或 Domain Name .
取得您所需的数据后 , 就可以开始设定 client 端了 , 请依照下面的步骤来做 :
Step 1 :
首先请打 setnbs , 此时会出现一个有四个选项的 menu , 您可以利用这个 menu来设定您的 nbs , 如果您选择 1 , 就 可以设定您的备份密码 , 这个密码会存于/etc/config.nbs 里 , 此檔只有 root 才能读写 , 如果您选择 2 的话 , 就会设定 您的备份主机的地址 , 此地址可以是 ip 也可以 domain name , 1.0.1r版以前 , 备份主机的地址是利用系统变量去存取 的 , 也因此无法利用 crontab来定时备份 , 因此现在改用 档案去存此变量 , 备份主机的地址也将存在/etc/ config.nbs 里 , 如果你选择 3 , 则可设定两者 .
Step 2 :
设定完后 , 再来就是编写『备份描述档』, 这个描述档主要是让您设定那些目录要备份 , 备份后的档名为何 , 主 要的语法描述如下 :
#comment
package --> 一定要以 package 开头 , 否则 { } 内的描述就会被忽略 .
{
what: /etc; --> 设定那个目录要备份 , 需以 『;』做结尾 .
filename: etc.tgz; --> 设定备份到备份主机上的文件名 , 也需以『;』做结 .
}
# another package
package
{
what: /user;
filename: user.tgz
;
}
......
注意: what: 之后的目录不可以为 symbol link 的目录 , 否则会被略过不予备份.
ps . client 的目录下有一个叫 example的目录 , 其下有一个参考用的描述档.
Step 3 :
写好描述档后 , 您就可以开始备份了 , 只要打 (描述档为 backup) :
nbs -backup backup
即可将描述文件内所描述的目录备份到备份主机上 .
如果您想将描述文件内的数据回存回来 , 您也只需打 :
nbs -restore backup /
第三个参数“/”表示数据从根目录下恢复回来 , 如果您想将数据恢复到其它目录只要更改这个参数即可 .
如果您想让系统自动备份 , 请将您的描述档写好后 , 将备份指令写入 crontab 里 ,如此系统即可自动定时备份了 .