2.Bacula Server端安装配置

1.  Bacula Server端安装配置

1.1.  Bacula Server端安装

1.1.1.  安装bacula依赖包

For Centos6:

yum install -y mysql mysql-server mysql-devel gcc gcc-c++ mysql-devel libacl libacl-devel

For Centos7:

yum install -y mariadb mariadb-server mysql-devel gcc gcc-c++ mysql-devel libacl libacl-devel

1.1.2.  安装bacula服务端

tar zxf bacula-9.x.tar.gz

cd bacula-9.x

CFLAGS="-g -Wall" ./configure

--sbindir=/usr/local/bacula/bin

--sysconfdir=/usr/local/bacula/etc

--with-pid-dir=/usr/local/bacula/working

--with-subsys-dir=/usr/local/bacula/working

--with-working-dir=/usr/local/bacula/working

--enable-smartalloc

--with-mysql

--enable-readline

--with-dump-email=nmonitor@163.com

--with-job-email=nmonitor@163.com

--with-smtp-host=mail.163.com

--docdir configure option

# 安装bacula

make && make install && make install-autostart

1.1.3.  创建并授权数据库

For Centos6:

service mysqld start

chkconfig mysqld on

For Centos7:

systemctl start mariadb

systemctl enable mariadb

导入数据库配置(目前不支持MySQL8以上版本)

cd bacula-9.2.2/src/cats

# 赋予权限

./grant_mysql_privileges -p

# 创建数据库

./create_mysql_database -p

# 创建相关表

./make_mysql_tables -p

1.2.  Bacula配置及启动

1.2.1.  修改sd address 

vi /usr/local/bacula/etc/bacula-dir.conf

# 7.x的为Storage,9.x的为Autochanger

Autochanger {

  Name = File1

  Address = serverip               # N.B. Use a fully qualified name here

# 不能使用localhost,写主机名(可以解析到)或IP地址

Autochanger {

  Name = File2

  Address = serverip                # N.B. Use a fully qualified name here  

1.2.2.  修改存储目录(根据实际环境修改)

vi /usr/local/bacula/etc/bacula-sd.conf

# /data 目录为存储备份的目录

Device {

  Name = FileChgr1-Dev1

  Media Type = File1

  Archive Device = /data

  LabelMedia = yes;                   # lets Bacula label unlabeled media

  Random Access = Yes;

  AutomaticMount = yes;               # when device opened, read it

  RemovableMedia = no;

  AlwaysOpen = no;

  Maximum Concurrent Jobs = 5

}

Device {

  Name = FileChgr1-Dev2

  Media Type = File1

  Archive Device = /data

  LabelMedia = yes;                   # lets Bacula label unlabeled media

  Random Access = Yes;

  AutomaticMount = yes;               # when device opened, read it

  RemovableMedia = no;

  AlwaysOpen = no;

  Maximum Concurrent Jobs = 5

}

1.2.3.  启动bacula

cd /usr/local/bacula/bin/

# 查看bacula状态

./bacula status

bacula-sd is stopped

bacula-fd is stopped

bacula-dir is stopped

# 启动bacula

 ./bacula start

Starting the Bacula Storage daemon

Starting the Bacula File daemon

Starting the Bacula Director daemon

bacula日志位于/opt/bacula/log/bacula.log

# 日志路径由bacula-dir.conf配置

# 此配置是在bacula-dir.conf中定义的“append = "/opt/bacula/log/bacula.log" = all, !skipped”

# centos6下只有出现错误时才会产生bacula.log,默认无bacula.log文件。

# centos7下安装完成后会自动生成bacula.log 

1.3.   bacula配置文件说明

bacula服务端有如下配置文件:

bconsole.conf:bconsole的配置文件,定义可连接的director连接信息。即bconsole可以管理那些director;

bacula-dir.conf:director的配置文件,是bacula最主要的配置文件,定义了备份相关的所有配置;

bacula-fd.conf:为客户端的配置文件,定义了客户端的密码、客户端名称等配置;

bacula-sd.conf:为存储配置文件,定义了备份存储位置。

其中关系如下图所示:

1.3.1.  bconsole.conf 控制台配置文件

 配置详解

vi bconsole.conf

Director {

  Name = server-dir

  DIRport = 9101

  address = localhost

  Password = "pJzzuOS5FoLWTFZkbhlY3CCw8OzmJ1G9t4GhQCWfHSik"

# 控制台密码,与后面的dir等配置文件相关联

}

1.3.2.  bacula-dir.conf Director配置文件

配置详解

vi bacula-dir.conf

# 定义Director

Director {                            # define myself

  Name = server-dir

  DIRport = 9101                # where we listen for UA connections

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

  WorkingDirectory = "/root/bacula/bin/working"

  PidDirectory = "/usr/local/bacula/bin/working"

  Maximum Concurrent Jobs = 20

  Password = "pJzzuOS5FoLWTFZkbhlY3CCw8OzmJ1G9t4GhQCWfHSik" 

# bconsole通过该密码连接director

  Messages = Daemon

}

# Job定义备份任务

JobDefs {

  Name = "DefaultJob"

  Type = Backup

  Level = Incremental

  Client = server-fd

  FileSet = "Full Set"

  Schedule = "WeeklyCycle"

  Storage = File1

  Messages = Standard

  Pool = File

  SpoolAttributes = yes

  Priority = 10

  Write Bootstrap = "/root/bacula/bin/working/%c.bsr"

}

# Fileset定义需要备份的文件

# For linux

FileSet {

  Name = "Full Set"

  Include {

    Options {

      signature = MD5

    }

    File = /usr/local/bacula/bin

  }

  Exclude {

    File = /root/bacula/bin/working

    File = /tmp

    File = /proc

    File = /tmp

    File = /sys

    File = /.journal

    File = /.fsck

  }

}

# For windows

FileSet {

  Name = "FileSet2"

  Include {

    Options {

      signature = MD5

      Compression = GZIP

    }

  File = "C:/myfiles"

  }

}

# Autochanger(storage)定义存储相关配置

Autochanger {

  Name = File2

# Do not use "localhost" here

  Address = 192.168.222.202                # N.B. Use a fully qualified name here

  SDPort = 9103

  Password = "NboyFMqm5MtBxD4+hKC+9XpDN8/1l587CslajTiCVu3i"

# 存储端密码,要和bacula-sd.conf中Director字段密码一样

  Device = FileChgr1

# 指定数据备份的存储介质,必须与存储端的bacula-sd.conf配置文#件中的“Device” 逻辑段的“Name”项名称相同

  Device = FileChgr2

  Media Type = File2

# 指定存储介质的类别,必须与存储端SD的bacula-sd.conf配置文#件中的“Device” 逻辑段的“Media Type”项名称相同

  Autochanger = File2                 # point to ourself

  Maximum Concurrent Jobs = 10        # run up to 10 jobs a the same time

}

# Pool定义备份保存策略

Pool {

  Name = File

  Pool Type = Backup

  Recycle = yes                      # Bacula can automatically recycle Volumes 重复使用

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

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

  Maximum Volume Bytes = 50G  # Limit Volume size to something reasonable最大卷的大小(默认为Bytes,使用M或G)

  Maximum Volumes = 100  # Limit number of Volumes in Pool设置最多保存多少个备份文件

  Label Format = "Vol-"             # Auto label自动命名创建的备份文件(Vol-0001开始的数字,后面的数字为jobid的数字)(Vol,可以自定义(File-、 Sky-......))

  Maximum Volume Jobs = 1     # 每个卷文件最大支持一个Job,即每个Job产生一个文件

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

# 修改Pool信息之后,重启bacula,原volume未满则需要等volum满了之后新的策略,或者删除现有的volume新的任务会使用新策略生成新volume

}

1.3.3.  bacula-sd.conf 存储配置文件

配置详解

vi bacula-sd.conf

Storage {                             # definition of myself

  Name = server-sd

  SDPort = 9103                  # Director's port

  WorkingDirectory = "/root/bacula/bin/working"

  Pid Directory = "/usr/local/bacula/bin/working"

  Maximum Concurrent Jobs = 20

}

Director {

  Name = server-dir

  Password = "P06iXvJqaxs+mowRhTyBrRSfgTSg3O1oYqYa3rKr1Cw1"

# 定义存储密码,director需要通过此密码连接存储

}

#

# Restricted Director, used by tray-monitor to get the

# status of the storage daemon

Director {

  Name = server-mon

  Password = "FYpq4yyI1y562EMS35bA0J0QC0M2L3t5cZObxT3XQxgxppTn"

# 配置 tray-monitor监控密码,详见《Tray Monitor服务》

  Monitor = yes

}

# 存储设备配置

Autochanger {

  Name = FileChgr1

  Device = FileChgr1-Dev1, FileChgr1-Dev2

  Changer Command = ""

  Changer Device = /dev/null

}

Device {

  Name = FileChgr1-Dev1

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

  Media Type = File1

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

  Archive Device = /data

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

LabelMedia = yes;       

# lets Bacula label unlabeled media通过Label命令来建立卷文件

  Random Access = Yes;       

#设置是否采用随机访问存储介质

  AutomaticMount = yes;

# when device opened, read it表示当存储设备打开时是否自动使用它

  RemovableMedia = no;   

#是否支持可移动的设备,如tap或cd

  AlwaysOpen = no;      

#是否确保tap设备总是可用

  Maximum Concurrent Jobs = 5

}

Device {

  Name = FileChgr1-Dev2

  Media Type = File1

  Archive Device = /data

  LabelMedia = yes;                   # lets Bacula label unlabeled media

  Random Access = Yes;

  AutomaticMount = yes;               # when device opened, read it

  RemovableMedia = no;

  AlwaysOpen = no;

}

1.3.4.  bacula-fd.conf 客户端配置文件

客户端安装方式可参考《Bacula Client端安装》

配置说明:

vi bacula-fd.conf

Director {

  Name = server-dir

# 此Name为Director的名称,即server端名称而非client的名称。

  Password = "3ydivk+gipxRjqbNCdwUeNi8ZWhGh3NXyvHXPZLAgMZ1"

# 定义client的密码,director需要通过此密码连接客户端

}

Director {

  Name = server-mon

# 此Name为tray-monitor的名称,即monitor的名称而非client的名称。

  Password = "w1yPbENlbfCMNrsD2gMarzBfLb+I1+kRN/UhUM3s5+VB"

# 配置 tray-monitor监控密码,详见《Tray Monitor服务》。。

  Monitor = yes

}

重启服务

./bacula restart

./bacula status

原文地址:https://www.cnblogs.com/skyshao/p/11389234.html