bacula配置

Bacula


  Bacula是一款开源的跨平台网络备份工具,提供基于企业级的CS的备份解决方案。可以对数据进行备份、恢复、以及完整性校验。 
  功能特点:
  支持完全备份增量备份差异备份

  支持多种恢复方式
  支持多种文件系统下的备份恢复(ext3、ext2、reiserfs、xfs、jfs、smbfs、iso9660、ntfs等)

  支持各种备份介质
  支持多种操作系统
  强大的内部功能
  一个完整的bacula备份系统,由下面5个部分组成

  Director Daemon:负责监听所有的备份、恢复、验证、存档事务,以及定制备份和恢复文件计划等,并将整个系统运行状况记录在一个数据库文件中。其配置文件为bacula-dir.conf。
  Storage Daemon(SD):主要负责将数据备份存储介质上,而在数据恢复时,负责将数据从存储介质中传送出去。其配置文件为bacula-sd.conf。
  File
Daemon(FD):安装在需要备份数据的机器上的守护进程,在备份数据时,它负责把文件传出,在恢复数据时负责接收数据并执行恢复操作。配置文件为bacula-fd.conf。

  Console:管理控制台。可以通过这个控制台连接到Director Daemon进行管理备份与恢复操作。
  Monitor:进程监控端。
  工作流程
  1、通过console连接到Director端,备份恢复操作开始。

  2、Director端从自己的数据库中调出记录信息,对存储端SD与客户端FD的任务进行协调。

  3、客户端FD负责验证Director的操作许可,如果验证通过,则允许连接到存储端SD

  4、客户端FD根据Director发出的请求去连接SD,将FD端的数据备份到存SD指定的存储介质上,或者将SD端存储介质中的数据传回到客户端FD指定的位置上,完成备份恢复过程。

  软件类别:国外软件 授权方式:免费版 运行环境:Win2003,
WinXp, Win2000, Nt, WinMe, Win9x,和Linux平台。
  

本次实验:服务器ip:10.0.253.117,客户端ip:10.0.253.118

改Localhost为baculaServer

[[email protected] ~] vi /etc/sysconfig/network

改yourname后面的值为:baculaServer

安装:

Ssrver端:

[[email protected] ~]# yum install gcc gcc-c++  //安装C编译器

[[email protected] ~]# yum install -y mysql mysql-server mysql-devel
//安装musql数据库

[[email protected]~]#wget
http://softlayer-dal.dl.sourceforge.net/project/bacula/bacula/5.2.13/bacula-5.2.13.tar.gz 
//下载bacula

[[email protected] ~]# tar zxvf bacula-5.2.13.tar.gz //解压bacula

[[email protected] ~]# cd bacula-5.2.13 //打开bacula

[[email protected]         
bacula-5.2.13]# ./configure--prefix=/usr/local/bacula--with-mysql

[[email protected] bacula-5.2.13]# make

[[email protected] bacula-5.2.13]# make install

[[email protected] bacula-5.2.13]# make install-autostart

Client端:

[[email protected] ~]# yum install gcc gcc-c++

[[email protected] ~]# cd bacula-5.2.13

[[email protected] bacula-5.2.13]# ./configure--prefix=/usr/local/bacula
--enable-client-only

[[email protected] bacula-5.2.13]# make install

[[email protected] bacula-5.2.13]# make install-autostart

初始化Mysql数据库:

[[email protected] bacula-5.2.13]# cd

[[email protected] ~]# service mysqld restart

[[email protected] ~]# cd /usr/local/bacula/etc

[[email protected] etc]# ./grant_mysql_privileges

[[email protected] ~]# ./create_mysql_database

[[email protected] ~]# ./make_mysql_tables

bacula实例配置:

Console端的配置

[[email protected] ~]# vi bconsole.conf // Console端的配置文件

Director

{

Name = f10-64-build-dir 
#控制端名称,在下面的bacula-dir.conf和bacula-sd.conf

#文件中会陆续的被引用

DIRport = 9101    #控制端服务端口

address = 10.0.253.117  #控制端服务器IP地址

Password =
"ouDao0SGXx/F+Tx4YygkK4so0l/ieqGJIkQ5DMsTQh6t"

#控制端密码文件

}

[[email protected] ~]# vi bacula-dir.conf //Director端的配置文件

Director
{                           
#定义bacula的全局配置

Name = f10-64-build-dir

DIRport =
9101                
#定义Director的监听端口

QueryFile = "/usr/local/bacula/etc/query.sql"

WorkingDirectory =
"/usr/local/bacula/var/bacula/working"

PidDirectory = "/var/run"

Maximum Concurrent Jobs = 1   
#定义一次能处理的最大并发数

#验证密码,这个密码必须与bconsole.conf文件中对应的Director逻辑段密码相同

Password =
"ouDao0SGXx/F+Tx4YygkK4so0l/ieqGJIkQ5DMsTQh6t"

#定义日志输出方式,“Daemon”在下面的Messages逻辑段中进行了定义

Messages = Daemon

}

Job {        #自定义一个备份任务

Name = "Client1"  #备份任务名称

Client = dbfd  
#指定要备份的客户端主机,“dbfd”在后面Client逻辑段中

#进行定义

Level = Incremental     
#定义备份的级别,Incremental为增量备份。Level的取值#可为Full(完全备份)、Incremental(增量备份)和Differential(差异备份),如果第一#次没做完全备份,则先进行完全备份后再执行Incremental

Type =
Backup                 
#定义Job的类型,“backup”为备份任务,可选

#的类型还有restore"恢复"和verify"验证"等

FileSet = dbfs    
#指定要备份的客户端数据,“dbfs”在后面FileSet

#逻辑段中进行定义

Schedule = dbscd   
#指定这个备份任务的执行时间策略,“dbscd”在

#后面的Schedule逻辑段中进行了定义

Storage = dbsd    
#指定备份数据的存储路径与介质,“dbsd” 在后

#面的Storage逻辑段中进行定义

Messages = Standard

Pool = dbpool    
#指定备份使用的pool属性,“dbpool”在后面的

# Pool逻辑段中进行定义。

Write Bootstrap =
"/usr/local/bacula/var/bacula/working/Client2.bsr" #指定备份的引导信息路径

}

Job {        
#定义一个名为Client的差异备份的任务

Name = "Client"

Type = Backup

FileSet = dbfs

Schedule = dbscd

Storage = dbsd

Messages = Standard

Pool = dbpool

Client = dbfd

Level = Differential     
#指定备份级别为差异备份

Write Bootstrap =
"/usr/local/bacula/var/bacula/working/Client1.bsr"

}

Job {       
#定义一个名为BackupCatalog的完全备份任务

Name = "BackupCatalog"

Type = Backup

Level =
Full        #指定备份级别为完全备份

Client = dbfd

FileSet="dbfs"

Schedule = "dbscd"

Pool = dbpool

Storage = dbsd

Messages = Standard

RunBeforeJob =
"/usr/local/bacula/etc/make_catalog_backup bacula bacula"

RunAfterJob  =
"/usr/local/bacula/etc/delete_catalog_backup"

Write Bootstrap =
"/usr/local/var/bacula/working/BackupCatalog.bsr"

}

Job { 
         #定义一个还原任务

Name = "RestoreFiles"

Type = Restore      
#定义Job的类型为“Restore ”,即恢复数据

Client=dbfd

FileSet=dbfs

Storage =
dbsd

Pool = dbpool

Messages = Standard

Where = /tmp/bacula-restores 
#指定默认恢复数据到这个路径

}

FileSet {  #定义一个名为dbfs的备份资源,也就是指定需要备份哪些数据,需要排除哪

#些数据等,可以指定多个FileSet

Name = dbfs

Include {

Options {

signature = MD5;
Compression=GZIP; }   #表示使用MD5签名并压缩

File =
/cws3           
#指定客户端FD需要备份的文件目录

}

Exclude {    #通过Exclude排除不需要备份的文件或者目录,可根据具体情况修改

File =
/usr/local/bacula/var/bacula/working

File = /tmp

File = /proc

File = /tmp

File =
/.journal

File = /.fsck

}

}

Schedule {       
#定义一个名为dbscd的备份任务调度策略

Name = dbscd

Run = Full 1st sun at 23:05 
#第一周的周日晚23:05分进行完全备份

Run = Differential 2nd-5th sun at 23:05
#第2~5周的周日晚23:05进行差异备份

Run = Incremental mon-sat at 23:05 
#所有周一至周六晚23:05分进行增量备份

}

FileSet {

Name = "Catalog"

Include {

Options {

signature = MD5

}

File =
/usr/local/bacula/var/bacula/working/bacula.sql

}

}

Client {       
#Client用来定义备份哪个客户端FD的数据

Name = dbfd  #Clinet的名称,可以在前面的Job中调用

Address = 10.0.253.118   
#要备份的客户端FD主机的IP地址

FDPort = 9102     
#与客户端FD通信的端口

Catalog = MyCatalog    
#使用哪个数据库存储信息,“MyCatalog”在后面

#的MyCatalog逻辑段中进行定义

Password =
"ouDao0SGXx/F+Tx4YygkK4so0l/ieqGJIkQ5DMsTQh6t"  #Director端与客户端FD

#的验证密码,这个值必须与客户端FD配置文件bacula-fd.conf中密码相同

File Retention = 30 days   
#指定保存在数据库中的记录多久循环一次,这里是30天,只

#影响数据库中的记录不影响备份的文件

Job Retention = 6 months  #指定Job的保持周期,应该大于File
Retention指定的值

AutoPrune =
yes         
#当达到指定的保持周期时,是否自动删除数据库中的记录,

#yes表示自动清除过期的Job

}

Client {

Name = dbfd1

Address = 10.0.253.118

FDPort = 9102

Catalog = MyCatalog

Password =
"Wr8lj3q51PgZ21U2FSaTXICYhLmQkT1XhHbm8a6/j8Bz"

File Retention = 30
days

Job Retention = 6
months

AutoPrune =
yes

}

Storage {      # Storage用来定义将客户端的数据备份到哪个存储设备上

Name = dbsd

Address = 10.0.253.117  #指定存储端SD的IP地址

SDPort = 9103    #指定存储端SD通信的端口

Password =
"ouDao0SGXx/F+Tx4YygkK4so0l/ieqGJIkQ5DMsTQh6t"  #Director端与存储端

#SD的验证密码,这个值必须与存储端SD配置文件bacula-sd.conf中Director逻辑段密码

#相同

Device = dbdev
#指定数据备份的存储介质,必须与存储端(这里是10.0.253.117)

#的bacula-sd.conf配置文件中的“Device”
逻辑段的“Name”项名称相同

Media Type = File
#指定存储介质的类别,必须与存储端SD(这里是10.0.253.117)

#的bacula-sd.conf配置文件中的“Device”
逻辑段的“Media Type”项名称相同

}

Catalog {         #
Catalog逻辑段用来定义关于日志和数据库设定

ame = MyCatalog

dbname = "bacula"; dbuser = "bacula"; dbpassword =
""   #指定库名、用户名和密码

}

Messages { # Messages逻辑段用来设定Director端如何保存日志,以及日志的保存格式,

#可以将日志信息发送到管理员邮箱,前提是必须开启sendmail服务

Name = Standard

mailcommand = "/usr/sbin/bsmtp -h localhost -f
\"\(Bacula\) \<%r\>\"-s \"Bacula: %t %e of %c %l\" %r"

operatorcommand = "/usr/sbin/bsmtp -h
localhost -f \"\(Bacula\) \<%r\>\"-s \"Bacula: Intervention needed for
%j\" %r"

mail = [email protected] = all,
!skipped

operator = [email protected] = mount

console = all, !skipped, !saved

append = "/usr/local/bacula/log/bacula.log" = all,
!skipped   #定义bacula的运行日志

append ="/usr/local/bacula/log/bacula.err.log" =
error,warning, fatal #定义bacula的错误日志

catalog = all

}

Messages { #定义了一个名为Daemon的Messages逻辑段,“Daemon”已经

#在前面进行了引用

Name = Daemon

mailcommand = "/usr/sbin/bsmtp -h localhost -f
\"\(Bacula\) \<%r\>\" -s \"Bacula daemon message\" %r"

mail = [email protected] = all,
!skipped

console = all, !skipped, !saved

append = "/usr/local/bacula/log/bacula_demo.log" =
all, !skipped

}

Pool {  #定义供Job任务使用的池属性信息,例如,设定备份文件过期时间、

#是否覆盖过期的备份数据、是否自动清除过期备份等

Name = dbpool

Pool Type = Backup

Recycle =
yes                  
#重复使用

AutoPrune =
yes               
#表示自动清除过期备份文件

Volume Retention = 7
days        #指定备份文件保留的时间

Label Format
="db-${Year}-${Month:p/2/0/r}-${Day:p/2/0/r}-id${JobId}" #设定备份文件的

#命名格式,这个设定格式会产生的命名文件为:db-2010-04-18-id139

Maximum Volumes = 7  #设置最多保存多少个备份文件

Recycle Current Volume = yes
#表示可以使用最近过期的备份文件来存储新备份

Maximum Volume Jobs = 1 
#表示每次执行备份任务创建一个备份文件

}

Console {    
 #限定Console利用tray-monitor获得Director的状态信息

Name = f10-64-build-mon

Password =
"RSQy3sRjak3ktZ8Hr07gc728VkZHBr0QCjOC5x3pXEap"

CommandACL = status, .status

}

配置bacula的SD:

[[email protected] ~]# vi bacula-sd.conf//服务器端的配置文件

Storage
{      
          #定义存储,本例中是f10-64-build-sd

Name = f10-64-build-sd #定义存储名称

SDPort =
9103          
#监听端口

WorkingDirectory =
"/usr/local/bacula/var/bacula/working"

Pid Directory = "/var/run"

Maximum Concurrent Jobs = 20

}

Director {       
#定义一个控制StorageDaemon的Director

Name = f10-64-build-dir    
#这里的“Name”值必须和Director端配置文件

#bacula-dir.conf中Director逻辑段名称相同

Password =
"ouDao0SGXx/F+Tx4YygkK4so0l/ieqGJIkQ5DMsTQh6t"   #这里的“Password”值

#必须和Director端配置文件bacula-dir.conf中Storage逻辑段密码相同

}

Director {      #定义一个监控端的Director

Name = f10-64-build-mon   
#这里的“Name”值必须和Director端配置文件

#bacula-dir.conf中Console逻辑段名称相同

Password =
"RSQy3sRjak3ktZ8Hr07gc728VkZHBr0QCjOC5x3pXEap"   #这里的“Password”

#值必须和Director端配置文件bacula-dir.conf中Console逻辑段密码相同

Monitor = yes

}

Device {       #定义Device

Name = dbdev   
#定义Device的名称,这个名称在Director端配置文件

#bacula-dir.conf中的Storage逻辑段Device项中被引用

Media Type = File  
#指定存储介质的类型,File表示使用文件系统存储

Archive Device = /webdata  #Archive
Device用来指定备份存储的介质,可以

#是cd、dvd、tap等,这里是将备份的文件保存的/webdata目录下

LabelMedia =
yes;           
#通过Label命令来建立卷文件

Random Access = yes;  
#设置是否采用随机访问存储介质,这里选择yes

AutomaticMount = yes; 
#表示当存储设备打开时,是否自动使用它,这选择yes

RemovableMedia = no; 
#是否支持可移动的设备,如tap或cd,这里选择no

AlwaysOpen = no;  
#是否确保tap设备总是可用,这里没有使用tap设备,

#因此设置为no

}

Messages {       
#为存储端SD定义一个日志或消息处理机制

Name = Standard

director = f10-64-build-dir = all

}

配置bacula的FD端

[[email protected] ~] vi fd.conf //客户端的配置文件

Director {      #定义一个允许连接FD的控制端

Name = f10-64-build-dir 
#这里的“Name”值必须和Director端配置文件

#bacula-dir.conf中Director逻辑段名称相同

Password =
"ouDao0SGXx/F+Tx4YygkK4so0l/ieqGJIkQ5DMsTQh6t"  #这里的“Password”

#值必须和Director端配置文件bacula-dir.conf中Client逻辑段密码相同

}

Director {      #定义一个允许连接FD的监控端

Name = f10-64-build-mon

Password =
"RSQy3sRjak3ktZ8Hr07gc728VkZHBr0QCjOC5x3pXEap"

Monitor = yes

}

FileDaemon
{               
#定义一个FD端

Name = localhost.localdomain-fd

FDport =
9102                 
#监控端口

WorkingDirectory =
/usr/local/bacula/var/bacula/working

Pid Directory = /var/run

Maximum Concurrent Jobs = 20  
#定义一次能处理的并发作业数

}

Messages {      #定义一个用于FD端的Messages

Name = Standard

director = localhost.localdomain-dir = all,
!skipped, !restored

}

服务器端的启动

[[email protected]  etc]# /usr/local/bacula/sbin/bacula

{start|stop|restart|status}

也可以通过分别管理bacula各个配置端的方式,依次启动或者关闭每个服务:

[[email protected]  etc]# /usr/local/bacula/etc/bacula-ctl-dir 
{start|stop|restart|status}

[[email protected]  etc]# /usr/local/bacula/etc/bacula-ctl-sd 
{start|stop|restart|status}

[[email protected]  etc]# /usr/local/bacula/etc/bacula-ctl-fd 
{start|stop|restart|status}

客服端的启动:

[[email protected] etc]# /usr/local/bacula/sbin/bacula start

Starting the Bacula File daemon

管理客户端FD的服务,也可以通过以下方式完成:

[[email protected] etc]# /usr/local/bacula/sbin/bacula
{start|stop|restart|status}

[[email protected] baculaclient  etc]# /usr/local/bacula/etc/bacula-ctl-fd 
{start|stop|restart|status}

简单实例运行:

备份恢复:

[[email protected] opt]#/usr/local/bacula/sbin/bconsole

Connecting to Director 10.0.253.117:9101

1000 OK: f10-64-build-dir Version: 3.0.2 (18
July 2009)

Enter a period to cancel a command

*run

bacula配置,布布扣,bubuko.com

时间: 2024-10-15 11:02:43

bacula配置的相关文章

企业级的开源备份工具Bacula之配置

一.Bacula配置 Bacula备份的主要配置项目存放在bacula-dir.conf文件中,该文件中的配置项包含以下内容. Jobdefs:默认执行任务 Job:自定义一个备份或恢复任务 Fileset:定义备份那些数据,不备份那些数据 Schedule:定义备份时间策略 Pool:定义供Job使用的池属性 Client:定义要备份的主机地址 Storange:定义数据的存储方式 Messages:定义发送日子报告和记录日志的位置 各项目定义的名称会相互关联,如下图所示. 3.1 bacul

开源网络备份软件 bacula 的安装、配置和运行

安装bacula 1 bacula的几种网络备份拓扑 前面文章介绍了bacula有5个组成部分,在实际的应用中,没有必要将5个部分分别放在不同的服务器上,它们之间的某些部分是可以合并的,常见的bacula部署结构有如下几种: Director与SD以及Console在一台机器上,而客户端FD在另外一台机器上,当然客户端FD可以有一台或者多台上. Director与Console在一台机器上,SD在一台机器上,客户端FD在一台或者多台上. Director与客户端FD.SD以及Console端都在

3.Bacula Client安装配置

1.   Bacula Client安装配置 1.1.   linux客户端安装 1.1.1.  安装依赖包 yum install libacl libacl-devel 1.1.2.  Client安装 tar zxf bacula-9.2.2.tar.gz cd bacula-9.2.2 CFLAGS="-g -Wall" ./configure \ --sbindir=/usr/local/bacula/bin \ --sysconfdir=/usr/local/bacula/

BACULA windows下面的Client配置

之前遇到过同样的问题,就是fd配置文件没有错误,但是就是不能备份,忘记了是神马原理了,反正在hotsts文件里面加了个  *.*.*.*  bacula_storage就oK了. 先做个笔记吧,真是好脑袋不如烂笔头啊!!! 原因在这里,dir配置文件中设置的Storage的地址是一个主机名称,不是使用的IP地址,因为没有DNS或者WINS解析,所以就只能用hosts大法了.这个开始的时候是为了解决广域网备份的问题,时间一长就忘记了.一般局域网下使用IP地址没有问题,但是涉及到广域网时,必须使用域

开源备份软件bacula安装记录--包括备份-恢复演练

该公司原先使用的备用机oracle-linux 5.7 不是很稳定执行.经常死机,新安装centos6.5, 即用bacula要备份的数据.在这里,有关安装故障记录,MEMO. 操作系统:centos6.5 1.安装mysql 用yum安装 yum install mysql mysql-server mysql-devel 这里要注意的是一定要安装mysql-devel,否则在等下configure bacula的时候会报找不到mysql.h文件--这里折腾了我好久.差点想去编译安装mysql

开源备份软件bacula安装记录--含备份-恢复演练

公司原来的备份机器用的是oracle-linux 5.7 运行的不是很稳定,经常出现死机,新装了一个centos6.5, 准备使用bacula来对数据进行备份,在这里记录一下安装过错,备忘. 操作系统:centos6.5 1.安装mysql 用yum安装 yum install mysql mysql-server mysql-devel 这里要注意的是一定要安装mysql-devel,否则在等下configure bacula的时候会报找不到mysql.h文件--这里折腾了我好久,差点想去编译

Firewalld on Centos 7 相关配置

Centos 7 默认使用防火墙为Firewalld防火墙,如下是关于Firewalld防火墙的一些配置介绍. 在使用firewalld之前,我们需要先检查一下firewalld的状态 [[email protected] ~]# firewall-cmd --staterunning running 表示firewalld是开启状态并正在运行. 有的时后会显示unit is masked,表示 防火墙被"遮盖",我们需要输入一下 [[email protected] ~]# syst

RHEL 7中防火墙的配置和使用

1.禁止特定IP访问特定端口[[email protected]:/root]#firewall-cmd --permanent --zone=public --add-rich-rule 'rule family="ipv4" source address="10.48.136.18*" port protocol="tcp" port="22" reject'success2.禁止IP段访问指定端口[[email prot

Centos7的firewalld配置

红帽官方的使用文档: https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Security_Guide/sec-Using_Firewalls.html 常用命令 # 查看版本 [[email protected] java]# firewall-cmd --version 0.3.9 # 查看状态 [[email protected] java]# systemctl status fire