高考考试网
当前位置: 首页 高考资讯

开源备份软件比较(开源备份工具bacula)

时间:2023-08-23 作者: 小编 阅读量: 1 栏目名: 高考资讯

其配置文件为bacula-sd.conf。FileDaemon:安装在需要备份数据的机器上的守护进程,在备份数据时,它负责把文件传出,在恢复数据时负责接收数据并执行恢复操作。可以通过这个控制台连接到DirectorDaemon进行管理备份与恢复操作。工作流程1、通过console连接到Director端,备份恢复操作开始。

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指定的位置上,完成备份恢复过程。

声明:以上是bacula简介均属百度百科摘抄。

拓扑流程图:

其实bacula这5个核心组件不必分别装在不同的机器上,笔者这儿就直接使用2台云主机模拟服务流程:

1.京东云主机:server [ console director mysql monitor SD ]

2.阿里云主机:client [ FD ]

[root@JD ~]# uname -r

3.10.0-514.el7.x86_64

需要安装数据库

yum install mariadb* -y

在Client和Server端下载解压预编译包

[root@JD src]# pwd

/usr/local/src[root@JD src]# tar -zvxf bacula-5.2.13.tar.gz [root@JD src]# cd bacula-5.2.13

Client主机上:

[root@Aliyun bacula-5.2.13]# ./configure --prefix=/usr/local/bacula --enable-client-only[root@Aliyun bacula-5.2.13]# make[root@Aliyun bacula-5.2.13]# make install[root@Aliyun bacula-5.2.13]# cd /usr/local/bacula/etc/

[root@Aliyun etc]# egrep -v '^#|^$' bacula-fd.conf

Director {##定义连接客户端FD的控制端

Name = JD-dir

Password = "dc5XEaySjV90PBfM0wCChirlEYkH4feUXjesKNHxdU2X"

##名字和密码是用来验证Server控制端的连接操作是否合法,需要与Server端的bacula-dir.conf中的Director一致.}

Director {##定义允许连接客户端FD的监控段

Name = JD-mon

Password = "JMRJc5OtI7eqz Fh3mbe6yQJig6R6wwTftuWX7 bXUAx"

##一样是验证,这是验证server端监控本地进程是否合法

Monitor = yes##开启监控}

FileDaemon { ##定义客户端的FD

Name = xad-fd

FDport = 9102 #默认监听端口

WorkingDirectory = /usr/local/bacula/opt/bacula/working

Pid Directory = /var/run

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

Messages {

Name = Standard

director = xad-dir = all, !skipped, !restored}

Server主机上:

[root@JD bacula-5.2.13]# ./configure --prefix=/usr/local/bacula --with-mysql #需开启数据库[root@JD bacula-5.2.13]# make [root@JD bacula-5.2.13]# make install

设置数据库和创建库和表

[root@JD bacula-5.2.13]# cd /usr/local/bacula/etc/

执行以下三个文件,默认以数据库root用户且密码为空进行,倘若root有密码,则同时修改这三个文件中连接数据库的代码段:......if mysql -D ${db_name} $* -u root -p00000000 -f <<END-OF-DATA

#添加红色部分,-p后为root密码......[root@JD etc]# ./grant_mysql_privileges##开启远程连接[root@JD etc]#./create_mysql_database ##创建数据库[root@JD etc]#./make_mysql_tables##创建数据表

进入mysql并查看是否有相关的数据信息

MariaDB [(none)]> show databases;

-------------------- | Database |

-------------------- | information_schema || bacula || mysql || performance_schema || test || xad |

--------------------

6 rows in set (0.00 sec)

Console端配置

[root@JD etc]# egrep -v '^#|^$' bconsole.conf##编辑console端配置文件

Director {

Name = JD-dir##Director端名称

DIRport = 9101##console默认端口

address = Dir-IP##Director端地址

Password = "dc5XEaySjV90PBfM0wCChirlEYkH4feUXjesKNHxdU2X"

##与Director端验证是的密码,需与Director端一致}

Director端配置

控制端配置文件共有10个逻辑段:

Director{...} 定义全局设置

Jobdefs{...} 定义默认执行任务

Job{...} 自定义一个备份或者恢复任务

Client{...} 定义要备份的主机地址

Fileset{...} 定义备份哪些数据,不备份哪些数据

Schedule{...} 定义备份时间策略

Storage{...} 定义数据的存储方式

Pool{...} 定义供Job使用的池属性

Catalog{...} 定义后台数据库

Messages{...} 定义发送日志报告和记录日志的位置

[root@JD etc]# egrep -v '^#|^$' bacula-dir.conf

Director { #定义全局配置

Name = JD-dir

DIRport = 9101 # 默认端口

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

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

PidDirectory = "/var/run"

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

Password = "dc5XEaySjV90PBfM0wCChirlEYkH4feUXjesKNHxdU2X"

# 与Console验证的验证 password需一致

Messages = Daemon##发送消息通知方式}

JobDefs {##定义默认执行任务

Name = "DefaultJob"

Type = Backup##任务类型默认为备份,可选restore和verify

Level = Incremental

##备份类型:Full(完全备份)、Incremental(增量备份)和Differential(差异备份)

##如果第一次没做完全备份,则先进行完全备份后再执行Incremental

Client = xad-fd##与客户端主机FD配置文件中一致

FileSet = "Full Set"##指定需要备份的数据策略,下文定义

Schedule = "WeeklyCycle"##指定这个备份任务的执行时间策略,下文定义

Storage = File###指定备份数据的存储路径与介质,下文定义

Messages = Standard

Pool = File##指定备份使用的pool属性,下文定义

Priority = 10

Write Bootstrap = "/usr/local/bacula/opt/bacula/working/%c.bsr" #指定备份的引导信息}

Job {

Name = "BackupClient1"

JobDefs = "DefaultJob"}

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}

Job {##定义还原任务

Name = "RestoreFiles"

Type = Restore

Client=xad-fd

FileSet="Full Set"

Storage = File

Pool = Default

Messages = Standard

Where = /tmp/bacula-restores}

FileSet {##定义需要的备份数据

Name = "Full Set"

Include {

Options {

signature = MD5

}

File = /usr/local/src##需要备份的数据的路径

}

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}

Schedule {

Name = "WeeklyCycleAfterBackup"

Run = Full sun-sat at 23:10}

FileSet {

Name = "Catalog"

Include {

Options {

signature = MD5

}

File = "/usr/local/bacula/opt/bacula/working/bacula.sql"

}}

Client {##定义客户端

Name = xad-fd

Address = IP-Client##客户端地址

FDPort = 9102##客户端端口

Catalog = MyCatalog##数据库存储信息方式

Password = "dc5XEaySjV90PBfM0wCChirlEYkH4feUXjesKNHxdU2X" ##与客户端一致

File Retention = 30 days # 数据循环时间,非备份文件存储时间

Job Retention = 6 months # 定义任务保持周期

AutoPrune = yes # 任务超过保持周期是否自动删除}

Storage {##定义存储设备

Name = File

Address = IP-SD # 存储设备服务SD的地址

SDPort = 9103 # 存储设备通信端口

Password = "dc5XEaySjV90PBfM0wCChirlEYkH4feUXjesKNHxdU2X" ##需与SD端配置一致

Device = FileStorage # 定义存储介质类型,需与SD端配置一致

Media Type = File # 介质类别,需与SD端配置一致}

Catalog {##定义日志和数据设定

Name = MyCatalog

dbname = "bacula"; dbuser = "root"; dbpassword = "00000000"##库名和密码}

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 ##bacual运行日志

catalog = all}

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}

Pool {

Name = Default##定义池属性

Pool Type = Backup

Recycle = yes #重复使用

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

Volume Retention = 365 days # 备份文件保留时间}

Pool {

Name = File

Pool Type = Backup

Recycle = yes

AutoPrune = yes

Volume Retention = 365 days

Maximum Volume Bytes = 50G # 最大备份文件的大小限制

Maximum Volumes = 100 # 备份文件个数最大限制}

Pool {

Name = Scratch

Pool Type = Backup}

Console {##定义console

Name = JD-mon

Password = "JMRJc5OtI7eqz Fh3mbe6yQJig6R6wwTftuWX7 bXUAx" ##需与console一致

CommandACL = status, .status}

SD配置文件

[root@JD etc]# egrep -v '^#|^$' bacula-sd.conf

Storage { # 定义存储

Name = JD-sd

SDPort = 9103

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

Pid Directory = "/var/run"

Maximum Concurrent Jobs = 20}

Director {##控制端信息

Name = JD-dir

Password = "dc5XEaySjV90PBfM0wCChirlEYkH4feUXjesKNHxdU2X"}

Director {##监控端monitor信息

Name = JD-mon

Password = "JMRJc5OtI7eqz Fh3mbe6yQJig6R6wwTftuWX7 bXUAx"

Monitor = yes}

Device {##定义设备介质

Name = FileStorage

Media Type = File

Archive Device = /tmp##存储位置

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

Random Access = Yes;#随机访问

AutomaticMount = yes; #自动挂载使用

RemovableMedia = no;#支持可移动设备

AlwaysOpen = no;}

Messages {

Name = Standard

director = JD-dir = all}

启动方式

Server端:

[root@JD etc]#/usr/local/bacula/etc/bacula-ctl-dir start[root@JD etc]#/usr/local/bacula/etc/bacula-ctl-sd start[root@JD ~]# netstat -tunlp | grep 910

tcp 0 0 0.0.0.0:9101 0.0.0.0:* LISTEN 26967/bacula-dir

tcp 0 0 0.0.0.0:9103 0.0.0.0:* LISTEN 27002/bacula-sd

Client端:

[root@Aliyun etc]# /usr/local/bacula/etc/bacula-ctl-fd start[root@Aliyun ~]# netstat -tunlp | grep 910

tcp 0 0 0.0.0.0:9102 0.0.0.0:* LISTEN 22685/bacula-fd

「ucache灾备云」是以在线云服务的方式提供用户Web控制台,备份本地数据至云端和云端数据恢复至本地的数据保护服务,为用户的数据搬迁提供技术保障。

关注我,了解更多~

    推荐阅读
  • 自制奶茶的做法(奶茶如何做)

    自制奶茶的做法所需食材:牛奶400ml,茶叶10克,白砂糖60克,仙草200克,水250ml。熬焦糖,把60克白砂糖放入厚底不锈钢锅,一定要用厚底不锈钢锅,不然焦糖很容易糊掉。往锅里倒入牛奶、水和茶叶。炉火保持中小火状态,边煮边搅拌,煮沸后关火,盖上锅盖焖3分钟左右。把烧仙草切小块,装进杯子里,把焦糖奶茶中的茶叶过滤掉,用茶包的可以省略过滤步骤。过滤好的奶茶倒入杯子中,一杯焦糖仙草奶茶就完成了。

  • 贡茶的项目概述(茶饮品牌贡茶明年将被出售)

    据说,TAAssociates正在与花旗银行合作,为贡茶寻找最好的出路;也有可能会选择出售股权给合作伙伴,协助贡茶开拓中国内地等新市场。目前,该协商还处于初期阶段,像时间等细节可能会产生变化。自1968年成立以来,TAAssociates已经募集325亿美元的资金,并且每年新投入的资金超过20亿美元。贡茶的官网上,并未展示中国内地的门店情况,但是国内的抄袭者众多。

  • 上海广西商会八月简报(上海市安庆商会10月工作小结)

    秘书处工作人员列席会议。此次活动由上海安庆经济文化促进会和上海市安庆商会联合主办、上海太湖经济文化促进会和商会太湖分会承办,商会常务副会长单位天倚道投资管理有限公司冠名支持,赛事组织由商会副会长单位国龙体育文化发展公司执行。商会文化传媒委员会开展集体走访10月20日,商会文化传媒委员会组织集体走访活动。安庆市教体局群体科、体卫艺科,迎江区教体局的相关负责人出席活动。

  • 咖喱做多了怎么保存(储存咖喱的步骤)

    接下来我们就一起去了解一下吧!咖喱做多了怎么保存将咖喱倒入可以封口的玻璃瓶或密封罐中,然后将密封的咖哩罐放进冰箱冷藏即可。如果是已经做成咖喱饭等,就用保鲜膜包好或用盖子改好再放入冰箱冷藏即可。已经煮熟的咖喱如果太多,可以分成小袋保存,一次吃多少就用多少,反复的化冻保存只会让咖喱变质更快。

  • 投资公司诱骗82位老人一千多万(七旬老汉坐拥4家公司)

    6月1日,泾县公安局接泾县某公司陆某报警称:自己被人诈骗了70余万元。然而,时间过去了整整一年,陆某翘首以盼的扶持资金迟迟没有到位不说,俞某还以种种理由推诿搪塞,并要求陆某继续汇款转账,察觉到受骗的陆某遂报警求助。面对困境,侦查民警迅速调整思路,及时通知相关证人调查取证、并在俞某住宅内搜查出大量公司印章及各类公司文件模板。7月1日,泾县公安局依法对俞某采取刑事强制措施,相关案件正在进一步侦办中。

  • 刹车油该换汽车会有提示吗(汽车刹车油出现这种情况)

    汽车刹车油作为制动系统的血液,不仅能够有效润滑刹车系统的运动部件,而且还有着防腐防锈的作用,由此可见汽车刹车油是非常重要的。一般汽车刹车油每两年或者是四万公里就要更换一次,以哪个先达到为准。如果混用汽车刹车油,很有可能会造成刹车油性能指标下降,从而降低汽车的制动效果,最后影响到我们的驾驶安全,因此大家的更换刹车油的时候一定要小心谨慎。

  • 金福南杀人事件始末剧情介绍(金福南杀人事件始末主演有谁)

    金福南杀人事件始末剧情介绍在首尔金融业独自打拼的单身女子郑海媛自然承受来自方方面面的巨大压力,她的情绪越来越紧张,最终不得不被迫休假。利用假期,海媛回到阔别已久的家乡无岛。福南希望女儿小燕拥有更好的人生,只是在这个蛮荒所在,人的尊严被肆意践踏。巨大的压力下,逆来顺受的福南化身为悲剧的复仇女王。《金福南杀人事件始末》是由张哲洙执导,徐英姬、池成媛、黄民浩、朴正学主演。

  • 家人群聊群名片(一家人的群名片)

    1、金粉世家、2、大清帝国、3、唐代才子佳人苑4、搞笑一家人5、吃饭,睡觉,打豆豆6、国务院领导班子7、靠谱家庭群8、逗比大家庭9、孤傲也是一种态度10、国粹研究管理部11、誓词曾经的那片天12、文化广场地主团13、皇冠贵族14、一大波逗比正在来袭.15、嘘寒问暖不如打笔巨款16、聚聊家人的守候17、潇湘书笛18、乌鸦也能展翅高飞19、无法无天逆态度20、烟勤话少脾气爆

  • 羽绒服染色怎么洗才能干净(冬天白色羽绒服染色怎么清洗)

    白色羽绒服是一种适合多种搭配方案的单品,因此在年轻人中非常受欢迎。白色羽绒服不仅在清洗方法上要特别注意而且还要分开来洗,以避免再次染色。最后,每次清洗羽绒服时,使用寿命都会缩短一次,因此请尽可能不要多次清洗。

  • 沟通技巧小故事(有关沟通的小故事)

    沟通技巧小故事沟通技巧小故事《可以吗?》在美国一个农村,住着一个老头,他有三个儿子。洛克菲勒同意了。又过了几天,这个人找到了世界银行总裁,对他说:“尊敬的总裁先生,你应该马上任命一个副总裁!”