最近在网上看到有一个强大的网络备份软件bacula,于是就找了一些资料来看,发现网上的资料寥寥无几啊,凭着自己的理解就在本地环境下面进行了测试,最后终于实现了网络的备份以及还原功能,当然此文章也有不足之处,之后会进行其他方面的一些更新.
网络备份工具bacula配置
简介: Bacula,被誉为开源软件中最好的备份还原软件,它提供了企业级的客户机/服务器的备份解决方案,能够通过网络来管理文件的备份,恢复和核实工作.既有windows版本的,也有Linux,Unix的. 关于bacula的组建介绍:
Directory: 管理所有备份,恢复,验证,和存档事务,定制备份和恢复文件的计划. Storge: 指定进行存储和恢复文件属性和数据的物理备份媒介. File: 安装在被备份机器上的程序,将被directory调用时候,它提供 Catalog: 负责维护所有备份文件的索引和数据库. Monitor: 监控directory、file、storage的守护进程. 试验环境:
使用2台服务器来做这个网络备份的测试环境,环境如下: 10.10.2.226 作为directory、storage、catalog. 关于bacula的结构图:
![4.jpg](http://i758.photobucket.com/albums/xx226/wiliiwin/4.jpg)
一. Bacula在server上的安装以及配置
1.Bacula在server上的安装
bacula 的安装不是很复杂,我这里安装的是bacula的2.4.3版本的. #tar zxvf bacula-2.4.3.tar.gz #./configure --with-mysql 默认情况下,bacula的安装路径为/etc/bacula. 2.创建mysql脚本
#./grant_mysql_privileges #./ create_mysql_database 3.bacula的配置
在这里说明下,bacula的主要配置都在directory这个配置文件里面的,这个算是一个核心文件了,一定要搞清楚里面配置文件的配置项都代表什么意思,否则很难配置成功. ##################################################################### DirAddress=10.10.226 // 这里是directory端的ip DIRport = 9101 // 这里是directory端的进程号 QueryFile = "/etc/bacula/query.sql" WorkingDirectory = "/var/bacula/working" PidDirectory = "/var/run" Maximum Concurrent Jobs = 1 Password = "MJ8SyFywMm+4ntJf2EupggRWIWE6LozmLfIKC8J9nYt7" Name =dbjob //job 的名字,这个可以随便起,在后面的备份操作 Client=dbfd // 这里要和后面的client的name名字要一样 Type=backup // 可用类型有backup,restore,verify,admin FileSet=dbfs // 这个要和后面的fileset的name名字要一样 Messages=Daemon // 这个要与后面的message的name名字要一样 Pool=dbpool // 这个要与后面的pool的name名字要一样 Storage=dbsd // 这个要与后面的storage的name名字要一样 Write Bootstrap = "/var/bacula/working/Client1.bsr" Level=Full // 这里是备份类型,可用的值是FULL(完全备份),incremental(增量备份),differential(差异备份) schedule=dbscd // 这里要与后面的schedule的name名字要一样 Write Bootstrap = "/var/bacula/working/Client1.bsr" Where =/home/bacula/ // 还原的路径 Name =dbfs // 这个名字是应用到job里面的 Compression=GZIP // 对备份文件进行gzip的压缩 signature = MD5 // 验证方式为MD5码的方式 File =/home/mysql_packup // 需要备份的目录 File = /proc // 不备份/proce Name = dbfd // 这里要与FD配置文件的name相同,并且应用在job里面的 Address = 10.10.2.162 // 要备份的客户机IP Catalog = dbcatalog // 记录客户机备份情况的日志名,后面会定义 Password = "Nd+Yuqe+Kd5wBc1S9uMTEGTNqNIe1cupnfuOdwboej6Z" // 与FD的密码一致 File Retention = 30 days // 保存在数据库目录多久轮询一次,这里是30天 Job Retention = 6 months //job 保持周期,大于FRetention AutoPrune = yes // 当FR/JR周期满了是否执行自动删除它们在数据库的目录 #priority =1 // 如果多个client时,定义优先级1-1000,值越小越优先 Name =dbsd // 必须与SD配置文件的name相同,这个应用到了job里面 Address = 10.10.2.226 // 安装sd服务的服务器IP Password = "5jipKA7pekDel6BUjgIwD3LkPPBgxcecbLpLfl9puj0c" // 要与SD的password一样 Device =dbdev // 要与SD配置文件的device的name相同 Media Type = File // 要与SD配置文件device的Media Type相同 Name =dbpool // 这个应用到了job里面 Volume Retention = 365 days Name =dbscd // 这个应用到了job里面 Run = Full 1st sun at 23:05 Run = Differential 2nd-5th sun at 23:05 Run = Incremental mon-sat at 23:05 Name =dbcatalog // 这个应用到了job里面 dbname = "bacula"; dbuser = "bacula"; dbpassword = "" DB Address=10.10.2.226 // 不要用localhost,数据库所在的IP Name = Daemon // 这个应用到了job里面 mailcommand = "/sbin/bsmtp -h localhost -f \"\(Bacula\) \<%r\>\" -s \"Bacula daemon message\" %r" mail = root@localhost = all, !skipped console = all, !skipped, !saved append = "/var/bacula/working/log" = all, !skipped Password = "MJ8SyFywMm+4ntJf2EupggRWIWE6LozmLfIKC8J9nYt7" CommandACL = status, .status ##################################################################### 本文转自wiliiwin 51CTO博客,原文链接:http://blog.51cto.com/wiliiwin/199294