Bacula配置

原创 2015年07月09日 19:21:35
bacula的配置文件有四个,分别对应主控端(bacula-dir.conf)、存储端(bacula-sd.conf)、客户端(bacula-fd.conf)、控制台(bconsole.conf)。


一、各配置文件之间的关系
组成 Bacula 备份系统有三个主要的部分,包括主控端、存储端和客户端,这三个部分都 有 各 自 的 配 置 文 件 , 相 对 应 的 是 主 控 端 ( bacula-dir.conf , 下 同 )、 存 储 端(bacula-sd.conf,下同)和客户端(bacula-fd.conf,下同),各配置文件中的部分项存在一定的关联,官方也用一张图形象的表示了它们之间的关系,看下图:
bacula各个配置文件之间的关系.png

图中使用箭头连接主控端配置文件的相关项与其它配置文件的相关项,所连接的相关项的值必须是相同的。下面用文件说明一下:
  1.   主控端配置文件的 Director{}项。
Name 值与控制台配置文件(bconsole.conf,下同)的 Director{}项、存储端配置文件的 Director{}项及客户端配置文件的 Director{}项的 Name 值相同;Password 值与控制台配置文件的 Director{}项的 Password 值相同。
    2.     主控端配置文件的 Storage{}项。Device 值与存储端配置文件的 Device{}项的 Name 值相同;MediaType 值与存储端配置文件的 Device{}项的 MediaType 值相同;Password 值与存储端配置文件的 Director{}项的 Password 值相同。
    3.     主控端配置文件的 Client{}项。Password 值与客户端配置文件的 Director{}项的 Password 值相同。

理解了图中表示的意思,对配置 Bacula 非常有帮助。所以希望大家先熟悉此图之后再做配置。


二 主控端( bacula-dir.conf)文件配置

下图是主控端配置文件的主要选项。图中对其做了简单的介绍:
主控端配置文件.png
为什么 Job 项与其他选项用线连接呢?
因为在执行一个任务(Job)的过程中,需要调用到其他选项的参数设置,从而使得任务的完整。如果这么多的参数全部写在 Job 选项里,那么就会将导致 Job 选项的参数设置非常复杂,这样的模块化设计显得更直观,也能使程序运行更效高效。下面用一句话说明一下:
建立一个备份任务(Job)时,就需要选择一台备份的计算机(Client),然后确定需要备份的文件(FileSet)及备份时间周期和备份类型(Schedule),最后选择备份到哪里(Storage)以及文件存储的方式(Pool),让管理者知道备份任务的的情况(Messages)。
注意:Job 项也可以是还原任务。
Bacula Director 服务管理所有的备份,恢复,验证和存档事务,所以主控端的配置文件也是最为复杂的。下面结合实际使用的配置文件对文件中各选项的参数设置进行详细的介绍。

Director{
    Name = saas-dir                                               #指定主控端名称
    Password = "ConsolePassword"                    #设置主控端密码,控制台连接时需要使用。
    
    QueryFile = "/usr/local/bacula/etc/query.sql"             #指定执行sql脚本存放的路径
      WorkingDirectory = "/usr/local/bacula/bin/working"
      PidDirectory = "/usr/local/bacula/bin/working"                #指定进程 ID 文件存放目录,必选。一般在./configure 时已经指定
    Maximum Concurrent Jobs = 20                                   #设置同时执行的最大任务数量,默认设置为 1。

    DirPort = 9101    #default 9101                                        #指定端口号监听控制台连接,默认是 9101。       

    #troggle
    MaximumConsoleConnections = 20  #指定控制台最大同时连接数,默认是 20。
    Messages = Daemon                          #引用 Messages{}的 Name 值

}

#JobDefs 选项允许所有可以出现在 Job 选项中的参数。但是,JobDefs 不会创建一个作业(Job),而是 Job{}引用它的参数设置。
JobDefs{
    
    Name ="DefaultJob"                   #指定 Job{}名称
    Type =Backup                             #Job 类型,定义备份作业或还原作业。取值有 Backup、Restore、Verify 和 Admin。
    #Level =Incremental      #备份类型,当 type 参数为备份作业时,取值有 Full、Incremental 和 Differential;还原作业不需要设置此选项;当 type 参数为 Verify 作业时,取值有 InitCatalog、Catalog、VolumeToCatalog 和 DiskToCatalog。
 
  Client =  saas-fd                   #引用 Client{}的 Name 值,也就是选择需要备份的客户端
    Fileset =  "Full Set"            #引用 FlieSet{}的 Name 值,也就是选择客户端需要备份的目录及文件。
    Schedule = "schedule"     #引用 Schedule{}的 Name 值,设置作业执行的时间周期,可选。如果没有指定,此任务必须手动执行。
    Storage = saas-sd           #引用 Storage{}的 Name 值,选择执行 Job 时的存储端。
    Messages =Standard     #引用 Messages{}的 Name 值
    Pool = Default                #引用 Pool{}的 Name 值
    Write Bootstrap= "/usr/local/bacula/working/Client1.bsr"   #Type=Backup  当执行备份作业是,将作业记录写入到一个引导文件。此参数只用于Job 类型为Backup 时,此时必选。

}



Storage{
    
    Name = saas-sd                
    Address =192.168.1.170 #storage Ip               #指定存储端的地址,可以是 IP 或者计算机名,如果选择计算机名,必须在/etc/hosts文件中加入解析条目,让系统能解析到此计算机名。必选。
    SD Port =9103                                                      #指定存储端的端口号,默认为 9103。
    Password = "StoragePassword"                         #指定存储端的密码

    Device = FileStorage #指定存储的设备。引用存储端配置文件的 Device{}的 Name 值,必选。
    Media Type = File        #与存储端配置文件的 Device{}的 Media Type 值相同,必选

    Maximum Concurrent Jobs = 20         #定义此存储端所允许同时进行的任务最大数量,默认为 1。
 
}


Schedule{
    
    Name = "schedule"
    Run = Level=Full daily at 11:20          #指定覆盖 Job{}默认参数的参数及执行作业的时间周期。具体语法规范见附件。
    Run = Level=Incremental daily at 11:25  

}



#Fileset{}定义哪些文件需要备份或者哪些文件排除在备份任务中,定义一个Fileset{}是每个备份任务必须的。可定义一个文件或者目录清单,可将压缩、加密和签名各种备份方案应用到每个文件。
Fileset{
    Name = "Full Set" 
    Include{
        Options{
            compression=GZIP
            signature = MD5
        }
        File = /root/桌面/备份用的test
    }
}



Client{
    
    Name= saas-fd
    Address = localhost   #client IP 指定客户端地址,可以是 IP 或者计算机名,如果选择计算机名,必须在/etc/hosts文件中加入解析条目,让系统能解析到此计算机名。必选。
    FDPort = 9102            #指定客户端的端口号,默认为 9102。
    Password = "ClientPassword"   #客户端的密码
    Catalog = MyCatalog      #引用 Catalog{}的 Name 值,为客户端调用。必选。
    Maximum Concurrent Jobs = 20
    
    
}

Catalog {   # 关于数据库的定义

  Name = MyCatalog        
  dbname = "bacula";        #指定数据库名称
  dbuser = "bacula";         #指定用户名,
  dbpassword = ""           #指定数据库密码

}

#完全备份
Job{
    
    Name = "FullBackup"
    Type=Backup
    Level=Full
    JobDefs="DefaultJob"   #引用 JobDefs{}的 Name 值。可选。

}

#增量备份
Job{

    Name = "IncrementalBackup"
    Type=Backup                             #Job 类型,定义备份作业或还原作业。取值有 Backup、Restore、Verify 和 Admin。
    Level=Incremental                    #备份类型,当 type 参数为备份作业时,取值有 Full、Incremental 和 Differential;还原作业不需要设置此选项;当 type 参数为 Verify 作业时,取值有 InitCatalog、Catalog、VolumeToCatalog 和 DiskToCatalog。
  
    JobDefs="DefaultJob"          #引用 JobDefs{}的 Name 值。可选。

}

#差分备份
Job{
    
    Name = "DifferentialBackup"
    Type=Backup
    Level=Differential
    JobDefs="DefaultJob"
    Rerun Failed Levels = yes #当运行任务运行失败后一次备份作业时,将提升更高的备份类型,比如差异备份异常终止,下次备份将执行完全备份。默认为 no

}


#备份还原
Job{

    Name="restore"
    Type= Restore
    Bootstrap =    "/usr/local/bacula/working/Restore1.bsr"  #指定引导文件,启动还原作业时自动创建。此参数只用于 Job 类型为 Restore 时,此时必选。 这个文件必须存在于电脑上,如果没有手动touch
    
    Pool = Default    
    Client =  saas-fd
    Fileset =  "Full Set"
    Messages =Standard
    Storage = saas-sd
    
    #Where = /root/桌面/备份用的test
    
}




# Reasonable message delivery -- send most everything to email address
#  and to the console
Messages {
  Name = Standard

 mailcommand = "/sbin/bsmtp -h localhost -f \"\(Bacula\) \<%r\>\" -s \"Bacula: %t %e of %c %l\" %r"
  operatorcommand = "/sbin/bsmtp -h localhost -f \"\(Bacula\) \<%r\>\" -s \"Bacula: Intervention needed
for %j\" %r"
  mail = root@localhost = all, !skipped
  operator = root@localhost = mount
  console = all, !skipped, !saved

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


#
# Message delivery for daemon messages (no job).
Messages {
 Name = Daemon
  mailcommand = "/sbin/bsmtp -h localhost -f \"\(Bacula\) \<%r\>\" -s \"Bacula daemon message\" %r"
  mail = root@localhost = all, !skipped
  console = all, !skipped, !saved
  append = "/usr/local/bacula/log/bacula.log" = all, !skipped
}

# Default pool definition
Pool {
  Name = Default
  Pool Type = Backup
  Recycle = yes                       # 是否重复使用 Volume
  AutoPrune = yes                     # 是否自动修剪

  Volume Retention = 365 days         # Volume 保留时间,默认为 1 年

  Maximum Volume Bytes = 50G          # 最大Volume(卷)的大小
  Maximum Volumes = 100               # Limit number of Volumes in Pool
}


#
# Restricted console used by tray-monitor to get the status of the director
#
Console {
  Name = saas-mon                 #指定 Console{}名称,必选。
  Password = "MonitorPassword"              #指定 Console{}密码,必选。
  CommandACL = status, .status
}


三 、存储端配置文件详解

Storage{

    Name = saas-sd            #指定 Storage{}名称,与主控端storage{}名称相同
      WorkingDirectory = "/usr/local/bacula/bin/working"           #指定工作目录,目录必须已经存在,必选。一般在./configure时已经指定。
      PidDirectory = "/usr/local/bacula/bin/working"      #指定进程 ID 文件存放目录,必选。一般在./configure 时已经指定。

    SDPort =9103                
    
    Maximum Concurrent Jobs = 20

}


Device {                           #定义Device

    Name = FileStorage                #定义Device的名称,这个名称在Director端配置文件bacula-dir.conf中的Storage逻辑段Device项中被引用

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

    Archive Device = /tmp/backup     #Archive Device用来指定备份存储的介质,可以是cd、dvd、tap等,这里是将备份的文件保存的/tmp/backup目录下

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

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

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

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

    AlwaysOpen = no;                   #是否确保t设备总是可用

}


Director{

    Name =saas-dir           #指定 Director{}名称,设置主控端 配 置 文 件 中 Director{} 的 Name 值
    Password="StoragePassword" #指 定 主 控 端 配 置 文 件Storage{}的 Password 值,必选。

}

#托盘监控相关设置
Director {
  Name = saas-mon   #指定 Director{}名称,设置托盘监控配置文件中 Monitor{}的Name 值,必选。
  Password = "MonitorPassword"
  Monitor = yes              #是否开启监控。默认值 no

}


 Messages {            # 为存储端SD定义一个日志或消息处理机制
  Name = Standard
  director = saas-dir = all
}

四、客户端配置文件详解 (bacula-fd.conf)


Director {
  Name = saas-dir  # 与服务器上的bacula-dir.conf中一致

  Password = "ClientPassword"  # 与服务器上的bacula-dir.conf文本中client定义的一致
}

Director {
  Name = saas-mon        # 与服务器上的bacula-dir.conf中一致
  Password = "MonitorPassword"  # 与服务器上的bacula-dir.conf中一致
  Monitor = yes
}

FileDaemon {                       
  Name = saas-fd      # 指自己,对应主控制器中client的Name

  FDport = 9102                  # 监听端口r
  WorkingDirectory = /usr/local/bacula/bin/working
  Pid Directory = /var/run
  Maximum Concurrent Jobs = 20
}
Messages {
  Name = Standard
  director = Client-dir = all, !skipped, !restored
}


五、管理配置文件介绍(bconsole.conf)

Director {
  Name = saas-dir
  DIRport = 9101
  address = localhost          # 服务器位置
  Password = "ConsolePassword"  # 与bacula-dir.conf中director中一致
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

bacula备份工具的编译安装+配置+测试

一、基本拓扑 server端:192.168.232.31 包括:bacula-dirbacula-sd bconsole client端:192.168.232.32 包括:bacula-fdb...

Bacula网络备份环境搭建

吐槽吐槽吐槽吐槽!!!!最近在学习《企业级服务器导论》这门课,老师在讲备份的内容的,留了一个大作业:让自己搭建一个bacula备份环境,要求FD段要和其他的服务端等分开,也就是所谓的分布式。    ...

bacula配置逻辑结构图

bacula配置逻辑结构图-原创
  • starym
  • starym
  • 2016年06月28日 17:29
  • 212

Bacula_配置文件详解

  • 2013年08月20日 09:56
  • 1.21MB
  • 下载

bacula 安装配置

  • 2013年08月01日 10:42
  • 11KB
  • 下载

bacula服务器备份系统配置

前面文章介绍了bacula有5个组成部分,在实际的应用中,没有必要将5个部分分别放在不同的服务器上,它们之间的某些部分是可以合并的,常见的bacula部署结构有如下几种: Director与SD以...

bacula-client-5.0.0-9.el6.i686.rpm

  • 2015年01月30日 22:27
  • 142KB
  • 下载

bacula part3

  • 2008年02月29日 11:20
  • 1.34MB
  • 下载

bacula插件编写初识

bacula的插件里面有以下几个函数 newPlugin(bpContext *ctx) freePlugin(bpContext *ctx) getPluginValue(bpContext *ct...

linux---系统备份---bacula

今天看到一个系统备份神器,bacula,就去研究了一下,试验下来发现与ORACLE的RMAN有点类似, 首先bacula的备份也是分为3种,全备份(full),增量备份(incremental),差...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Bacula配置
举报原因:
原因补充:

(最多只允许输入30个字)