bacula-5-2-13的安装以及基本的备份还原配置成功案例

bacula-5-2-13的安装以及基本的备份还原配置成功案例

我用的是bacula5.2.13,系统方面,我在centos6和centos7下面都成功过,
bacula是个很强的备份工具,这点可以自行百度,最近在初学这个工具,此文章为怕自己忘记怎么配置备份所用,只是测试了备份以及还原文件而已,我只是一个小菜鸟,很多地方注释我都是用的自己的话,很多没有解清楚。。。。有什么不对的地方希望可以给我留言以及评论,谢谢

此次实验进行的是
1、备份以及还原本机的文件
2、备份以及还原远程客户端的文件
中文注释的地方是我修改的地方,可读性不怎么好,所有bconsole操作都是在服务器端操作,结果在客户端上查看

准备工作:
这里安装测试我只用了两台机器,一台做服务器端,配置文件有bacual-dir.conf , bacula-fd.conf , bacula-sd.conf , bconsole.conf
一台做客户端,配置文件有bacula-fd.conf , bconsole.conf

服务器:172.16.13.171 zdy1.cluster.com zdy1
客户端:172.16.13.172 zdy2.cluster.com zdy2
互相绑定主机名。关闭防火墙,selinux

一、安装
bacula的安装前:
检查gcc、gcc-c++。有的话就行,没有的话就yum安装一下。yum源的话我用的是本地镜像源,有时可能需要配个epel源和centos163源,这个可以百度
安装:
1,在服务端
yum -y install mysql mysql-server mysql-devel (mysql可以选择编译,这里采用yum安装)
centos7下:yum -y install mariadb mariadb-devel mariadb-server

创建安装包目录:
mkdir /opt/bacula

解压:
    tar xf bacula-5.2.13.tar.gz  -C /opt/bacula

  cd /opt/bacula/bacula-5.2.13

编译安装:
./configure –prefix=/usr/local/bacula –with-mysql (如果mysql是编译的则需要指定mysql安装的路径)
make && make install
make install-autostart

 vim /etc/profile
 在最后一行加入:  export PATH=$PATH:/usr/local/bacula/sbin
 保存退出:source /etc/profile

安装完了之后,需要创建bacula对应的mysql数据库心及访问数据库的授权。
systemc mariadb start 或者service start mysqld
cd /usr/local/bacula/etc
./grant_mysql_privileges
./create_mysql_database
./make_mysql_tables
可以登录到mysql中查看bacula库的中表是否已经建立,上面三个脚本默认由空密码的root用户执行,因此需要确保mysql root的密码为空。

2,客户端
只是需要备份的客户端,因此只需要安装相应的客户端组件即可。
makdir /opt/bacula
tar xf … -C /opt/bacula
cd /opt/bacula/bacula-5.2.13

./configure –prefix=/usr/local/bacula –enable-client-only
make && make install
make install-autostart

到这里,就已经安装完成了,我觉得安装很简单,难的是理解配置文件的关系以及服务器端的job的定义

配置文件的关系可以去百度搜索看,注意理解服务器端四个配置文件:bacula-dir.conf 、bacula-fd.conf 、bacula-sd.conf 、bconsole.conf
注意理解客户端的两个文件:bconsole.conf , bacula-fd.conf

二、测试(这里我有测试备份和恢复本机文件,有备份和恢复远程客户端文件)中文注释及为我所修改
1、测试备份还原本机文件:
首先定义好服务器端bacula-dir.conf文件:

Director {                            # define myself
  Name = zdy1.cluster.com-dir
  DIRport = 9101                     # where we listen for UA connections
  QueryFile = "/usr/local/bacula/etc/query.sql"
  WorkingDirectory = "/usr/local/bacula/opt/bacula/working"
  PidDirectory = "/var/run"
  Maximum Concurrent Jobs = 1
  Password = "qYhhy5PNCZTgW/nzE1JYiPRr+fBmUYR93uqLIyFNCDR1"         # Console password
  Messages = Daemon
}

JobDefs {                          #定义本机的文件备份
  Name = "DefaultJob"
  Type = Backup
  Level = Incremental
  Client = zdy1.cluster.com-fd
  FileSet = "Full Set"
  Schedule = "WeeklyCycle"
  Storage = File
  Messages = Standard
  Pool = File
  Priority = 10
  Write Bootstrap = "/usr/local/bacula/opt/bacula/working/%c.bsr"    #备份的信息存储目录
}
JobDefs {                  #定义本机的文件还原
  Name = "RestoreFiles"
  Type = Restore
 # Client=zdy1.cluster.com-fd                 
  FileSet="Full Set"
  Storage = File
  Pool = Default
  Messages = Standard
  Where = /tmp/bacula-restores  #还原信息存储目录
}

####### 还原本机,备份本机############################

Job {         #备份本机文件,引用的是上面的DefaultJob
  Name = "Backuplocalhost"
  JobDefs = "DefaultJob"
}

Client {
  Name = zdy1.cluster.com-fd
  Address = zdy1
  FDPort = 9102
  Catalog = MyCatalog
  Password = "XJ7vbW5riIK6PDnGQMOUDVdl3PY8zT0KPit052HRpKHF"  #这个密码和本机的bacula-fd.conf中第一个director的密码一样
  File Retention = 30 days            # 60 days
  Job Retention = 2 months            # six months
  AutoPrune = yes                     # Prune expired Jobs/Files
}

Job {        #还原本机文件
  Name = "Restorelocahost"
  Type = Restore
  Client=zdy1.cluster.com-fd
  FileSet="Full Set"
  Storage = File
  Pool = File
  Messages = Standard
  Where = /home/bacula-restores   #还原后的文件目录
}
##################################################

# Backup the catalog database (after the nightly save)
Job {
  Name = "BackupCatalog"
  JobDefs = "DefaultJob"
  Level = Full
  FileSet="Catalog"
  Schedule = "WeeklyCycleAfterBackup"
  # This creates an ASCII copy of the catalog
  # Arguments to make_catalog_backup.pl are:
  #  make_catalog_backup.pl <catalog-name>
  RunBeforeJob = "/usr/local/bacula/etc/make_catalog_backup.pl MyCatalog"
  # This deletes the copy of the catalog
  RunAfterJob  = "/usr/local/bacula/etc/delete_catalog_backup"
  Write Bootstrap = "/usr/local/bacula/opt/bacula/working/%n.bsr"
  Priority = 11                   # run after main backup
}

# List of files to be backed up
FileSet {
  Name = "Full Set"
  Include {
    Options {
 #     wildfile = "*.log"
 #     wildfile = "*.txt"
 #     wildfile = "*.tar.gz"
 #     wildfile = "*.out"
 #     exclude = yes
      signature = MD5
 #     Compression = gzip
    }

    File = /test  #######这里定义的文件目录是我需要备份此目录下的所有文件
  }

  Exclude {
    File = /usr/local/bacula/opt/bacula/working
    File = /tmp
    File = /proc
    File = /tmp
    File = /.journal
    File = /.fsck
  }
}
Schedule {
  Name = "WeeklyCycle"
  Run = Full 1st sun at 23:05
  Run = Differential 2nd-5th sun at 23:05
  Run = Incremental mon-sat at 23:05
}

# This schedule does the catalog. It starts after the WeeklyCycle
Schedule {
  Name = "WeeklyCycleAfterBackup"
  Run = Full sun-sat at 23:10
}

# This is the backup of the catalog
FileSet {
  Name = "Catalog"
  Include {
    Options {
      signature = MD5
    }
    File = "/usr/local/bacula/opt/bacula/working/bacula.sql"
  }
}

# Definition of file storage device
Storage {
  Name = File
# Do not use "localhost" here    
  Address = zdy1                # N.B. Use a fully qualified name here
  SDPort = 9103
  Password = "WDPX8qK0DJ98rvthf3Uf9p77+PxV8tfMY51HwYF5h++/"
  Device = FileStorage
  Media Type = File
}

# Generic catalog service
Catalog {
  Name = MyCatalog 
  dbname = "bacula"; dbuser = "bacula"; dbpassword = ""
}

# Reasonable message delivery -- send most everything to email address
#  and to the console
Messages {
  Name = Standard
  mailcommand = "/usr/local/bacula/sbin/bsmtp -h localhost -f \"\(Bacula\) \<%r\>\" -s \"Bacula: %t %e of %c %l\" %r"
  operatorcommand = "/usr/local/bacula/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/opt/bacula/log/bacula.log" = all, !skipped
  catalog = all
}


#
# Message delivery for daemon messages (no job).
Messages {
  Name = Daemon
  mailcommand = "/usr/local/bacula/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/opt/bacula/log/bacula.log" = all, !skipped
}
   # Default pool definition
Pool {
  Name = Default
  Pool Type = Backup
  Recycle = yes                       # Bacula can automatically recycle Volumes
  AutoPrune = yes                     # Prune expired volumes
  Volume Retention = 365 days         # one year
}

# File Pool definition
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
  Maximum Volumes = 100               # Limit number of Volumes in Pool
}


# Scratch pool definition
Pool {
  Name = Scratch
  Pool Type = Backup
}

#
# Restricted console used by tray-monitor to get the status of the director
#
Console {
  Name = zdy1.cluster.com-mon
  Password = "T24AhaA0Cg8WO4mALHG/swH0w05KgD46ODXgVszazDh7"
  CommandACL = status, .status
}

以上修改了服务器端的dir文件,此时我想要备份还原本机,就是相当于把本机当成客户端,此时,我们需要修改本机的bacula-fd.conf文件:

Director {
  Name = zdy1.cluster.com-dir   #改成和主机配置文件dir中的client{}中相同的name,然后下面的密码也要和dir文件中的client{}密码相同

  Password = "XJ7vbW5riIK6PDnGQMOUDVdl3PY8zT0KPit052HRpKHF"
}

#
# Restricted Director, used by tray-monitor to get the
#   status of the file daemon
#
Director {
  Name = zdy1.cluster.com-mon  
   #改成与服务器端console.conf配置文件中的console.conf中的name相同

  Password = "qYhhy5PNCZTgW/nzE1JYiPRr+fBmUYR93uqLIyFNCDR1"
  #密码和服务器端dir文件中的第一个director中密码相同  

  Monitor = yes
}

#
# "Global" File daemon configuration specifications
#
FileDaemon {                          # this is me
  Name = zdy1.cluster.com-fd
  FDport = 9102                  # where we listen for the director
  WorkingDirectory = /usr/local/bacula/opt/bacula/working
  Pid Directory = /var/run
  Maximum Concurrent Jobs = 20
}

此时配置文件已经修改完毕,测试一下:
启动:bacula start

# bacula restart
Stopping the Bacula File daemon
Stopping the Bacula Storage daemon
Stopping the Bacula Director daemon
Starting the Bacula Storage daemon
Starting the Bacula File daemon
Starting the Bacula Director daemon

进入控制台:bconsole
a、执行备份的命令,我在/test目录下创建了几个文件
[root@zdy1 test]# ls
test1 test2

# bconsole 
Connecting to Director zdy1:9101
1000 OK: zdy1.cluster.com-dir Version: 5.2.13 (19 February 2013)
Enter a period to cancel a command.
*run        ######启动命令
Automatically selected Catalog: MyCatalog
Using Catalog "MyCatalog"
A job name must be specified.
The defined Job resources are:
     1: Backuplocalhost
     2: Restorelocahost
Select Job resource (1-2): 1  ###############选择备份
Run Backup job
JobName:  Backuplocalhost
Level:    Incremental
Client:   zdy1.cluster.com-fd
FileSet:  Full Set
Pool:     File (From Job resource)
Storage:  File (From Job resource)
When:     2017-10-15 16:35:29
Priority: 10
OK to run? (yes/mod/no): yes
Job queued. JobId=10
You have messages.
*
*wait       #########等待
*messages   ########## 查看信息
15-Oct 16:35 zdy1.cluster.com-dir JobId 10: No prior Full backup Job record found.
15-Oct 16:35 zdy1.cluster.com-dir JobId 10: No prior or suitable Full backup found in catalog. Doing FULL backup.
15-Oct 16:35 zdy1.cluster.com-dir JobId 10: Start Backup JobId 10, Job=Backuplocalhost.2017-10-15_16.35.31_03
15-Oct 16:35 zdy1.cluster.com-dir JobId 10: Using Device "FileStorage" to write.
15-Oct 16:35 zdy1.cluster.com-sd JobId 10: Volume "local" previously written, moving to end of data.
15-Oct 16:35 zdy1.cluster.com-sd JobId 10: Ready to append to end of Volume "local" size=2366
15-Oct 16:35 zdy1.cluster.com-sd JobId 10: Elapsed time=00:00:01, Transfer rate=71  Bytes/second
15-Oct 16:35 zdy1.cluster.com-dir JobId 10: Bacula zdy1.cluster.com-dir 5.2.13 (19Jan13):
  Build OS:               x86_64-unknown-linux-gnu redhat (Core)
  JobId:                  10
  Job:                    Backuplocalhost.2017-10-15_16.35.31_03
  Backup Level:           Full (upgraded from Incremental)
  Client:                 "zdy1.cluster.com-fd" 5.2.13 (19Jan13) x86_64-unknown-linux-gnu,redhat,(Core)
  FileSet:                "Full Set" 2017-10-15 13:21:03
  Pool:                   "File" (From Job resource)
  Catalog:                "MyCatalog" (From Client resource)
  Storage:                "File" (From Job resource)
  Scheduled time:         15-Oct-2017 16:35:29
  Start time:             15-Oct-2017 16:35:33
  End time:               15-Oct-2017 16:35:33
  Elapsed time:           0 secs
  Priority:               10
  FD Files Written:       1
  SD Files Written:       1
  FD Bytes Written:       0 (0 B)
  SD Bytes Written:       71 (71 B)
  Rate:                   0.0 KB/s
  Software Compression:   None
  VSS:                    no
  Encryption:             no
  Accurate:               no
  Volume name(s):         local
  Volume Session Id:      1
  Volume Session Time:    1508056491
  Last Volume Bytes:      2,877 (2.877 KB)
  Non-fatal FD errors:    0
  SD Errors:              0
  FD termination status:  OK
  SD termination status:  OK
  Termination:            Backup OK

15-Oct 16:35 zdy1.cluster.com-dir JobId 10: Begin pruning Jobs older than 2 months .
15-Oct 16:35 zdy1.cluster.com-dir JobId 10: No Jobs found to prune.
15-Oct 16:35 zdy1.cluster.com-dir JobId 10: Begin pruning Files.
15-Oct 16:35 zdy1.cluster.com-dir JobId 10: No Files found to prune.
15-Oct 16:35 zdy1.cluster.com-dir JobId 10: End auto prune.

*

备份成功,我将/test下的几个文件删除掉
rm -rf /test*

b、还原测试:

*restore    #使用还原命令

First you select one or more JobIds that contain files
to be restored. You will be presented several methods
of specifying the JobIds. Then you will be allowed to
select which files from those JobIds are to be restored.

To select the JobIds, you have the following choices:
     1: List last 20 Jobs run
     2: List Jobs where a given File is saved
     3: Enter list of comma separated JobIds to select
     4: Enter SQL list command
     5: Select the most recent backup for a client
     6: Select backup for a client before a specified time
     7: Enter a list of files to restore
     8: Enter a list of files to restore before a specified time
     9: Find the JobIds of the most recent backup for a client
    10: Find the JobIds for a backup for a client before a specified time
    11: Enter a list of directories to restore for found JobIds
    12: Select full restore to a specified Job date
    13: Cancel
Select item:  (1-13): 5    ####选择5进行最近的备份工作还原
Defined Clients:
     1: zdy1.cluster.com-fd

Select the Client (1-3): 1  ###选择需要还原的客户端(相当于本机)
Automatically selected FileSet: Full Set
+-------+-------+----------+----------+---------------------+------------+
| JobId | Level | JobFiles | JobBytes | StartTime           | VolumeName |
+-------+-------+----------+----------+---------------------+------------+
|    10 | F     |        1 |        0 | 2017-10-15 16:35:33 | local      |
|    11 | I     |        3 |        0 | 2017-10-15 16:42:28 | local      |
+-------+-------+----------+----------+---------------------+------------+
You have selected the following JobIds: 10,11

Building directory tree for JobId(s) 10,11 ...  
2 files inserted into the tree.

You are now entering file selection mode where you add (mark) and
remove (unmark) files to be restored. No files are initially added, unless
you used the "all" keyword on the command line.
Enter "done" to leave this mode.

cwd is: /   ##到这里差不多还原已经成功了
$ ls   #查看还原目录
test/
$ cd test    
cwd is: /test/
$ ls     #查看需要还原的文件
test1 
test2
$ cd ..
cwd is: /
$ mark test*       ##还原test以及test目录下所有文件
3 files marked.
$ cd test
cwd is: /test/
$ ls
*test1
*test2
$ done           ####结束还原      
Bootstrap records written to /usr/local/bacula/opt/bacula/working/zdy1.cluster.com-dir.restore.1.bsr

The job will require the following
   Volume(s)                 Storage(s)                SD Device(s)
===========================================================================

    local                     File                      FileStorage              

Volumes marked with "*" are online.


3 files selected to be restored.

The defined Restore Job resources are:
     1: Restorelocahost

Select Restore Job (1-3): 1   ###选择还原本机
Run Restore job
JobName:         Restorelocahost
Bootstrap:       /usr/local/bacula/opt/bacula/working/zdy1.cluster.com-dir.restore.1.bsr
Where:           /home/bacula-restores
Replace:         always
FileSet:         Full Set
Backup Client:   zdy1.cluster.com-fd
Restore Client:  zdy1.cluster.com-fd
Storage:         File
When:            2017-10-15 16:44:51
Catalog:         MyCatalog
Priority:        10
Plugin Options:  *None*
OK to run? (yes/mod/no): yes
Job queued. JobId=12
*
*
*wait
*
*message
15-Oct 16:42 zdy1.cluster.com-dir JobId 11: Start Backup JobId 11, Job=Backuplocalhost.2017-10-15_16.42.26_05
15-Oct 16:42 zdy1.cluster.com-dir JobId 11: Using Device "FileStorage" to write.
15-Oct 16:42 zdy1.cluster.com-sd JobId 11: Volume "local" previously written, moving to end of data.
15-Oct 16:42 zdy1.cluster.com-sd JobId 11: Ready to append to end of Volume "local" size=2877
15-Oct 16:42 zdy1.cluster.com-sd JobId 11: Elapsed time=00:00:01, Transfer rate=255  Bytes/second
15-Oct 16:42 zdy1.cluster.com-dir JobId 11: Bacula zdy1.cluster.com-dir 5.2.13 (19Jan13):
  Build OS:               x86_64-unknown-linux-gnu redhat (Core)
  JobId:                  11
  Job:                    Backuplocalhost.2017-10-15_16.42.26_05
  Backup Level:           Incremental, since=2017-10-15 16:35:33
  Client:                 "zdy1.cluster.com-fd" 5.2.13 (19Jan13) x86_64-unknown-linux-gnu,redhat,(Core)
  FileSet:                "Full Set" 2017-10-15 13:21:03
  Pool:                   "File" (From Job resource)
  Catalog:                "MyCatalog" (From Client resource)
  Storage:                "File" (From Job resource)
  Scheduled time:         15-Oct-2017 16:42:23
  Start time:             15-Oct-2017 16:42:28
  End time:               15-Oct-2017 16:42:28
  Elapsed time:           0 secs
  Priority:               10
  FD Files Written:       3
  SD Files Written:       3
  FD Bytes Written:       0 (0 B)
  SD Bytes Written:       255 (255 B)
  Rate:                   0.0 KB/s
  Software Compression:   None
  VSS:                    no
  Encryption:             no
  Accurate:               no
  Volume name(s):         local
  Volume Session Id:      2
  Volume Session Time:    1508056491
  Last Volume Bytes:      3,620 (3.620 KB)
  Non-fatal FD errors:    0
  SD Errors:              0
  FD termination status:  OK
  SD termination status:  OK
  Termination:            Backup OK

15-Oct 16:42 zdy1.cluster.com-dir JobId 11: Begin pruning Jobs older than 2 months .
15-Oct 16:42 zdy1.cluster.com-dir JobId 11: No Jobs found to prune.
15-Oct 16:42 zdy1.cluster.com-dir JobId 11: Begin pruning Files.
15-Oct 16:42 zdy1.cluster.com-dir JobId 11: No Files found to prune.
15-Oct 16:42 zdy1.cluster.com-dir JobId 11: End auto prune.

15-Oct 16:44 zdy1.cluster.com-dir JobId 12: Start Restore Job Restorelocahost.2017-10-15_16.44.53_06
15-Oct 16:44 zdy1.cluster.com-dir JobId 12: Using Device "FileStorage" to read.
15-Oct 16:44 zdy1.cluster.com-sd JobId 12: Ready to read from volume "local" on device "FileStorage" (/tmp).
15-Oct 16:44 zdy1.cluster.com-sd JobId 12: Forward spacing Volume "local" to file:block 0:2877.
15-Oct 16:44 zdy1.cluster.com-sd JobId 12: End of Volume at file 0 on device "FileStorage" (/tmp), Volume "local"
15-Oct 16:44 zdy1.cluster.com-sd JobId 12: End of all volumes.
15-Oct 16:44 zdy1.cluster.com-dir JobId 12: Bacula zdy1.cluster.com-dir 5.2.13 (19Jan13):
  Build OS:               x86_64-unknown-linux-gnu redhat (Core)
  JobId:                  12
  Job:                    Restorelocahost.2017-10-15_16.44.53_06
  Restore Client:         zdy1.cluster.com-fd
  Start time:             15-Oct-2017 16:44:55
  End time:               15-Oct-2017 16:44:55
  Files Expected:         3
  Files Restored:         3
  Bytes Restored:         0
  Rate:                   0.0 KB/s
  FD Errors:              0
  FD termination status:  OK
  SD termination status:  OK
  Termination:            Restore OK

15-Oct 16:44 zdy1.cluster.com-dir JobId 12: Begin pruning Jobs older than 2 months .
15-Oct 16:44 zdy1.cluster.com-dir JobId 12: No Jobs found to prune.
15-Oct 16:44 zdy1.cluster.com-dir JobId 12: Begin pruning Files.
15-Oct 16:44 zdy1.cluster.com-dir JobId 12: No Files found to prune.
15-Oct 16:44 zdy1.cluster.com-dir JobId 12: End auto prune.

*

还原成功,本机的/home/bacula-restores下有还原的文件

2、测试备份以及还原远程客户端的文件:
首先,我们在服务器的bacula-dir.conf文件的最后面加入以下脚本:

@|"sh -c 'for f in /usr/local/bacula/etc/conf.d/*.conf ; do echo @${f} ; done'"

以上脚本的作用是将自定义的客户端备份还原任务写到另外一个文件中,有利于阅读以及方便管理
然后在/usr/local/bacula/etc/下创建conf.d文件,在conf.d目录里创建备份以及还原任务:
[root@zdy1 etc]# cd conf.d/
[root@zdy1 conf.d]# ls
client172.conf
定义客户端的备份以及还原任务:
在client172.conf文文件中

Pool {      #自定义存储条件
  Name = zdy2
  Pool Type = Backup
  Recycle = yes
  AutoPrune = yes
  Volume Retention = 30 days
  Maximum Volume Bytes = 50 G
  Maximum Volumes = 100
  Maximum Volume Jobs = 1
  Label Format = "${Job}-${Year}-${Month:p/2/0/r}-${Day:p/2/0/r}-id${JobId}"
}

Client {          #定义进行备份以及还原操作的远程客户端
  Name = zdy2.cluster.com-fd
  Address = 172.16.13.172
  FDPort = 9102
  Catalog = MyCatalog
  Password = "cerU/APZwPP2zVSfrZuU+Y4osaZH5xrdEIwrpkCXqUMW"
  #此密码与客户端的bacula-fd.conf中的第一个director中密码相同
  File Retention = 30 days
  Job Retention = 2 months
  AutoPrune = yes
}

Job {    #定义备份任务
  Name = zdy2-backup
  Type = Backup
  Level = Incremental
  Client = zdy2.cluster.com-fd
  FileSet = "Full Set"
  Schedule = WeeklyCycle
  Storage = File
  Messages = Standard
  Pool = zdy2
  SpoolAttributes = yes
  Priority = 10
  Write Bootstrap = /opt/bacula/working/%c.bsr
}

Job {    #定义还原任务
  Name = zdy2-restore
  Type = Restore
  Client = zdy2.cluster.com-fd
  FileSet = "Full Set"
  Storage = File
  Pool = zdy2
  Messages = Standard
  Where = /home/bacula-restores  #定义还原到客户端的哪个目录(默认是这个,可以自己定义)
}

接下来修改远程客户端zdy2的bacula-fd.conf文件:

#
Director {
  Name = zdy1.cluster.com-dir
  Password = "cerU/APZwPP2zVSfrZuU+Y4osaZH5xrdEIwrpkCXqUMW"
  #此密码和在服务器中(client172.conf)定义的客户端密码相同
}

Director {
  Name = zdy1.cluster.com-mon
  Password = "qYhhy5PNCZTgW/nzE1JYiPRr+fBmUYR93uqLIyFNCDR1"           #服务器zdy1中dir.conf中的第一个director密码
  Monitor = yes
}

FileDaemon {                          # this is me
  Name = zdy2.cluster.com-fd
  FDport = 9102                  # where we listen for the director
  WorkingDirectory = /usr/local/bacula/opt/bacula/working
  Pid Directory = /var/run
  Maximum Concurrent Jobs = 20
}

在客户端zdy2中创建文件:
[root@zdy2 test]# ls
test1 test2
修改完成后,重启服务器端和客户端的bacula
在服务器端进行备份操作:

# bconsole 
Connecting to Director zdy1:9101
1000 OK: zdy1.cluster.com-dir Version: 5.2.13 (19 February 2013)
Enter a period to cancel a command.
*run
Automatically selected Catalog: MyCatalog
Using Catalog "MyCatalog"
A job name must be specified.
The defined Job resources are:
     1: Backuplocalhost
     2: Restorelocahost
     3: BackupCatalog
     4: zdy2-backup
     5: zdy2-restore

Select Job resource (1-5): 4  #选择备份客户端zdy2
Run Backup job
JobName:  zdy2-backup
Level:    Incremental
Client:   zdy2.cluster.com-fd
FileSet:  Full Set
Pool:     zdy2 (From Job resource)
Storage:  File (From Job resource)
When:     2017-10-15 17:06:18
Priority: 10
OK to run? (yes/mod/no): yes
Job queued. JobId=13
*
*wait      #############
You have messages.
*
*messages   ####查看信息
15-Oct 17:06 zdy1.cluster.com-dir JobId 13: Start Backup JobId 13, Job=zdy2-backup.2017-10-15_17.06.20_03
15-Oct 17:06 zdy1.cluster.com-dir JobId 13: Created new Volume "zdy2-backup-2017-10-15-id13" in catalog.
15-Oct 17:06 zdy1.cluster.com-dir JobId 13: Using Device "FileStorage" to write.
15-Oct 17:06 zdy1.cluster.com-sd JobId 13: Labeled new Volume "zdy2-backup-2017-10-15-id13" on device "FileStorage" (/tmp).
15-Oct 17:06 zdy1.cluster.com-sd JobId 13: Wrote label to prelabeled Volume "zdy2-backup-2017-10-15-id13" on device "FileStorage" (/tmp)
15-Oct 17:06 zdy1.cluster.com-dir JobId 13: Max Volume jobs=1 exceeded. Marking Volume "zdy2-backup-2017-10-15-id13" as Used.
15-Oct 17:06 zdy1.cluster.com-sd JobId 13: Elapsed time=00:00:01, Transfer rate=255  Bytes/second
15-Oct 17:06 zdy1.cluster.com-sd JobId 13: Sending spooled attrs to the Director. Despooling 680 bytes ...
15-Oct 17:06 zdy1.cluster.com-dir JobId 13: Bacula zdy1.cluster.com-dir 5.2.13 (19Jan13):
  Build OS:               x86_64-unknown-linux-gnu redhat (Core)
  JobId:                  13
  Job:                    zdy2-backup.2017-10-15_17.06.20_03
  Backup Level:           Incremental, since=2017-10-15 14:24:22
  Client:                 "zdy2.cluster.com-fd" 5.2.13 (19Jan13) x86_64-unknown-linux-gnu,redhat,(Core)
  FileSet:                "Full Set" 2017-10-15 13:21:03
  Pool:                   "zdy2" (From Job resource)
  Catalog:                "MyCatalog" (From Client resource)
  Storage:                "File" (From Job resource)
  Scheduled time:         15-Oct-2017 17:06:18
  Start time:             15-Oct-2017 17:06:23
  End time:               15-Oct-2017 17:06:23
  Elapsed time:           0 secs
  Priority:               10
  FD Files Written:       3
  SD Files Written:       3
  FD Bytes Written:       0 (0 B)
  SD Bytes Written:       255 (255 B)
  Rate:                   0.0 KB/s
  Software Compression:   None
  VSS:                    no
  Encryption:             no
  Accurate:               no
  Volume name(s):         zdy2-backup-2017-10-15-id13
  Volume Session Id:      1
  Volume Session Time:    1508058353
  Last Volume Bytes:      959 (959 B)
  Non-fatal FD errors:    0
  SD Errors:              0
  FD termination status:  OK
  SD termination status:  OK
  Termination:            Backup OK

15-Oct 17:06 zdy1.cluster.com-dir JobId 13: Begin pruning Jobs older than 2 months .
15-Oct 17:06 zdy1.cluster.com-dir JobId 13: No Jobs found to prune.
15-Oct 17:06 zdy1.cluster.com-dir JobId 13: Begin pruning Files.
15-Oct 17:06 zdy1.cluster.com-dir JobId 13: No Files found to prune.
15-Oct 17:06 zdy1.cluster.com-dir JobId 13: End auto prune.

*

备份成功
删除/test中的文件,
[root@zdy2 test]# ls
test1 test2
[root@zdy2 test]# rm ./* -rf
[root@zdy2 test]# ls
[root@zdy2 test]#

还原:在服务器端zdy1操作

*restore

First you select one or more JobIds that contain files
to be restored. You will be presented several methods
of specifying the JobIds. Then you will be allowed to
select which files from those JobIds are to be restored.

To select the JobIds, you have the following choices:
     1: List last 20 Jobs run
     2: List Jobs where a given File is saved
     3: Enter list of comma separated JobIds to select
     4: Enter SQL list command
     5: Select the most recent backup for a client
     6: Select backup for a client before a specified time
     7: Enter a list of files to restore
     8: Enter a list of files to restore before a specified time
     9: Find the JobIds of the most recent backup for a client
    10: Find the JobIds for a backup for a client before a specified time
    11: Enter a list of directories to restore for found JobIds
    12: Select full restore to a specified Job date
    13: Cancel
Select item:  (1-13): 5  #########选择还原最近备份文件
Defined Clients:
     1: zdy1.cluster.com-fd
     2: zdy2.cluster.com-fd

Select the Client (1-2): 2  ##选择相应的客户端
Automatically selected FileSet: Full Set
+-------+-------+----------+----------+---------------------+-----------------------------+
| JobId | Level | JobFiles | JobBytes | StartTime           | VolumeName                  |
+-------+-------+----------+----------+---------------------+-----------------------------+
|     6 | F     |        5 |        0 | 2017-10-15 14:24:22 | zdy2-backup-2017-10-15-id6  |
|    13 | I     |        3 |        0 | 2017-10-15 17:06:23 | zdy2-backup-2017-10-15-id13 |
+-------+-------+----------+----------+---------------------+-----------------------------+
You have selected the following JobIds: 6,13

Building directory tree for JobId(s) 6,13 ...  
6 files inserted into the tree.

You are now entering file selection mode where you add (mark) and
remove (unmark) files to be restored. No files are initially added, unless
you used the "all" keyword on the command line.
Enter "done" to leave this mode.

cwd is: /   
$ ls   #进入到还原目录中
test/
$ cd test
cwd is: /test/
$ ls       #查看需要还原的文件
test1
test2
$ cd ..
cwd is: /
$ mark test*    #还原目录以及目录下的所有文件
3 files marked.
$ cd test
cwd is: /test/
$ ls
*test1
*test2    #*号代表还原成功
$ done    #结束
Bootstrap records written to /usr/local/bacula/opt/bacula/working/zdy1.cluster.com-dir.restore.1.bsr

The job will require the following
   Volume(s)                 Storage(s)                SD Device(s)
===========================================================================

    zdy2-backup-2017-10-15-id6 File                      FileStorage              
    zdy2-backup-2017-10-15-id13 File                      FileStorage              

Volumes marked with "*" are online.


7 files selected to be restored.

The defined Restore Job resources are:
     1: Restorelocahost
     2: zdy2-restore

Select Restore Job (1-2): 2   ####选择相应的客户端
Run Restore job
JobName:         zdy2-restore
Bootstrap:       /usr/local/bacula/opt/bacula/working/zdy1.cluster.com-dir.restore.1.bsr
Where:           /home/bacula-restores
Replace:         always
FileSet:         Full Set
Backup Client:   zdy2.cluster.com-fd
Restore Client:  zdy2.cluster.com-fd
Storage:         File
When:            2017-10-15 17:11:45
Catalog:         MyCatalog
Priority:        10
Plugin Options:  *None*
OK to run? (yes/mod/no): yes
Job queued. JobId=14
*
*wait
You have messages.
*
*messages    ####查看还原状态以及信息
15-Oct 17:11 zdy1.cluster.com-dir JobId 14: Start Restore Job zdy2-restore.2017-10-15_17.11.46_04
15-Oct 17:11 zdy1.cluster.com-dir JobId 14: Using Device "FileStorage" to read.
15-Oct 17:11 zdy1.cluster.com-sd JobId 14: Ready to read from volume "zdy2-backup-2017-10-15-id6" on device "FileStorage" (/tmp).
15-Oct 17:11 zdy1.cluster.com-sd JobId 14: Forward spacing Volume "zdy2-backup-2017-10-15-id6" to file:block 0:231.
15-Oct 17:11 zdy1.cluster.com-sd JobId 14: End of Volume at file 0 on device "FileStorage" (/tmp), Volume "zdy2-backup-2017-10-15-id6"
15-Oct 17:11 zdy1.cluster.com-sd JobId 14: Ready to read from volume "zdy2-backup-2017-10-15-id13" on device "FileStorage" (/tmp).
15-Oct 17:11 zdy1.cluster.com-sd JobId 14: Forward spacing Volume "zdy2-backup-2017-10-15-id13" to file:block 0:232.
15-Oct 17:11 zdy1.cluster.com-sd JobId 14: End of Volume at file 0 on device "FileStorage" (/tmp), Volume "zdy2-backup-2017-10-15-id13"
15-Oct 17:11 zdy1.cluster.com-sd JobId 14: End of all volumes.
15-Oct 17:11 zdy1.cluster.com-dir JobId 14: Bacula zdy1.cluster.com-dir 5.2.13 (19Jan13):
  Build OS:               x86_64-unknown-linux-gnu redhat (Core)
  JobId:                  14
  Job:                    zdy2-restore.2017-10-15_17.11.46_04
  Restore Client:         zdy2.cluster.com-fd
  Start time:             15-Oct-2017 17:11:48
  End time:               15-Oct-2017 17:11:49
  Files Expected:         7
  Files Restored:         7
  Bytes Restored:         0
  Rate:                   0.0 KB/s
  FD Errors:              0
  FD termination status:  OK
  SD termination status:  OK
  Termination:            Restore OK

15-Oct 17:11 zdy1.cluster.com-dir JobId 14: Begin pruning Jobs older than 2 months .
15-Oct 17:11 zdy1.cluster.com-dir JobId 14: No Jobs found to prune.
15-Oct 17:11 zdy1.cluster.com-dir JobId 14: Begin pruning Files.
15-Oct 17:11 zdy1.cluster.com-dir JobId 14: No Files found to prune.
15-Oct 17:11 zdy1.cluster.com-dir JobId 14: End auto prune.

*

客户端上验证:
[root@zdy2 test]# cd /home/
[root@zdy2 home]# ls
bacula-restores
[root@zdy2 home]# cd bacula-restores/
[root@zdy2 bacula-restores]# cd test/
[root@zdy2 test]# ls
test1 test2

还原成功!!


  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值