• 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

  • 相关阅读:
    dd if=/dev/zero of=/dev/null 使用
    Linux 下的dd命令使用详解以及dd if=/dev/zero of=的含义
    windows 以及 linux 查看时间
    Linux下vi命令大全(文件修改)
    python test online
    python ssh登录下载上传脚本
    python telnet 中的数据判断(或者执行cmd后返回的数据 OperatingSystem.Run)
    python 转化串口中的数据 ,并分组判断
    python cmd下关闭exe程序(关闭浏览器驱动)
    robot 网卡连接情况
  • 原文地址:https://www.cnblogs.com/skyshao/p/11389234.html
Copyright © 2020-2023  润新知