一、部署结构 (有错误或不明白处,可加我QQ:761117826,我们一起共同研究,谢谢!)
1.2 MySQL数据库初始化
[root@baculaserver ~]# cd /usr/local/bacula/etc
[root@baculaserver etc]# ./grant_mysql_privileges -u root -p
[root@baculaserver etc]# ./create_mysql_database -u root -p
[root@baculaserver etc]# ./make_mysql_tables -u root -p
#在执行上面三行mysql初始化时,默认由数据库管理员root执行,如果没有密码就不必加后面的-u root -p,如果有密码,则输入密码。
2.bacula客户端安装(使用的与server是一样的安装包)
主机名 ip地址 应用角色 OS
baculaserver 192.168.1.10 Director、SD、Console CentOS5.6
baculaclient1 192.168.1.11 FD CentOS5.6
baculaserver 192.168.1.10 Director、SD、Console CentOS5.6
baculaclient1 192.168.1.11 FD CentOS5.6
baculaclient2 192.168.1.12 FD
CentOS5.6
二、安装
1.bacula服务器端安装和初始化
1.1 bacula软件安装
安装bacula之前要安装mysql gcc gcc-c++
[root@baculaserver ~]# yum install mysql mysql-devel mysql-server gcc gcc-c++ -y
在
http://sourceforge.net/projects/bacula/files/bacula/下载bacula,我使用的是bacula-5.2.10版本
[root@baculaserver ~]# tar -zxf bacula-5.2.10.tar.gz -C /usr/src/
[root@baculaserver ~]# cd /usr/src/bacula-5.2.10
[root@baculaserver bacula-5.2.10]# ./configure --prefix=/usr/local/bacula --with-mysql
#指定安装路径和所用数据库
[root@baculaserver bacula-5.0.1]# make && make install && make install-autostart
[root@baculaserver ~]# tar -zxf bacula-5.2.10.tar.gz -C /usr/src/
[root@baculaserver ~]# cd /usr/src/bacula-5.2.10
[root@baculaserver bacula-5.2.10]# ./configure --prefix=/usr/local/bacula --with-mysql
#指定安装路径和所用数据库
[root@baculaserver bacula-5.0.1]# make && make install && make install-autostart
#make install-autostart为开机自启动服务
1.2 MySQL数据库初始化
[root@baculaserver ~]# cd /usr/local/bacula/etc
[root@baculaserver etc]# ./grant_mysql_privileges -u root -p
[root@baculaserver etc]# ./create_mysql_database -u root -p
[root@baculaserver etc]# ./make_mysql_tables -u root -p
#在执行上面三行mysql初始化时,默认由数据库管理员root执行,如果没有密码就不必加后面的-u root -p,如果有密码,则输入密码。
2.bacula客户端安装(使用的与server是一样的安装包)
安装bacula之前要安装gcc,gcc-c++
[root@baculaclient ~]# yum install gcc gcc-c++ -y
[root@baculaclient ~]# tar -zxf bacula-5.2.10.tar.gz -C /usr/src/
[root@baculaclient ~]# cd /usr/src/bacula-5.2.10
[root@baculaclient bacula-5.2.10]# ./configure --prefix=/usr/local/bacula --enable-client-only
#指定安装路径和只安装客户端组件
[root@baculaclient ~]# cd /usr/src/bacula-5.2.10
[root@baculaclient bacula-5.2.10]# ./configure --prefix=/usr/local/bacula --enable-client-only
#指定安装路径和只安装客户端组件
[root@baculaclient bacula-5.0.1]# make && make install && make install-autostart
#make install-autostart为开机自启动服务
三、bacula配置
1. bacula服务器端配置
1.1 bacula的console端配置(bconsole.conf)
[root@baculaserver etc]# vim bconsole.conf #当前目录是/usr/local/bacula/etc/
#
# Bacula User Agent (or Console) Configuration File
#
Director {
Name = baculaserver-dir #主控台名称,可自定义,要求与bacula-dir.conf中定义相同,安装时默认是server的主机名+ -dir,不要更改就好。
DIRport = 9101 #控制台服务器端口
address = 192.168.1.10 #控制台服务器IP,不要用localhost
Password = "LiuQingshan-Director" #控制台密码
}
1.2. bacula的Director端配置(bacula-dir.conf)
1.2.1 bacula-dir.conf的组成
bacula-dir.conf是Director端的配置文件,也是bacula的核心配置文件,该文件由以下10个逻辑端组成:
Director:定义全局设置
Catalog:定义后台数据库
Jobdefs:定义默认执行任务
Job:自定义一个备份或恢复任务
Fileset:定义备份哪些数据,不备份哪些数据
Schedule:定义备份时间策略
Pool:定义供Job使用的池属性
Client:定义要备份的客户端
Storage:定义数据的存储方式
Messages:定义发送日志报告和日志的记录
bacula-dir.conf是Director端的配置文件,也是bacula的核心配置文件,该文件由以下10个逻辑端组成:
Director:定义全局设置
Catalog:定义后台数据库
Jobdefs:定义默认执行任务
Job:自定义一个备份或恢复任务
Fileset:定义备份哪些数据,不备份哪些数据
Schedule:定义备份时间策略
Pool:定义供Job使用的池属性
Client:定义要备份的客户端
Storage:定义数据的存储方式
Messages:定义发送日志报告和日志的记录
1.2.2 bacula-dir.conf配置
[root@baculaserver etc]# vim bacula-dir.conf #当前目录是/usr/local/bacula/etc/
#
# Default Bacula Director Configuration file
#
# The only thing that MUST be changed is to add one or more
# file or directory names in the Include directive of the
# FileSet resource.
#
# For Bacula release 5.2.10 (28 June 2012) -- redhat
#
# You might also want to change the default email address
# from root to your address. See the "mail" and "operator"
# directives in the Messages resource.
#
Director { # define myself #控制台的全局配置
Name = baculaserver-dir #定义控制台名称,要与sd、fd的Director相同
DIRport = 9101 # where we listen for UA connections # Director的服务端口
QueryFile = "/usr/local/bacula/etc/query.sql"
WorkingDirectory = "/usr/local/bacula/var/bacula/working"
PidDirectory = "/var/run"
Maximum Concurrent Jobs = 1 #一次能处理的最大并发数
Heartbeat Interval = 15 seconds #与sd、fd的心跳时间
Password = "LiuQingshan-Director" # Console password #验证密码,这个密码必须与bconsole.conf文件中对应的Director逻辑段密码相同
Messages = Daemon #日志输出方式,“Daemon”在下面Messages逻辑段中定义
}
JobDefs { #JobDefs类似一个模板,并不是真正创建一个任务,只为Job提供一个默认的配置,当前Job明确定义的任何值,将会覆盖冲突的JobDefs值,后面的Job会调用这个模板。
Name = "DefaultJob" #JobDefs名字
Type = Backup #可用类型有backup,restore,verify,admin
Level = Incremental #备份类型,可用的值是FULL(完全备份),Incremental(增量备份),Differential(差异备份),如第一次没做完全备份,则先进行完全备份后再执行Incremental
# Client = janus.mazentop.com-fd
# FileSet = "Full Set"
# Schedule = "WeeklyCycle"
# Storage = File
Messages = Standard
Pool = File #pool属性,“File”在后面的Pool逻辑段定义
# Priority = 10
Write Bootstrap = "/usr/local/bacula/var/bacula/working/%c.bsr" #指定备份的引导信息路径
}
#
# Define the main nightly save backup job
# By default, this job will back up to disk in /tmp
#Job {
# Name = "BackupClient1"
# JobDefs = "DefaultJob"
#}
#Job {
# Name = "BackupClient2"
# Client = janus.mazentop.com2-fd
# JobDefs = "DefaultJob"
#}
# Backup the catalog database (after the nightly save)
#Job { #定义一个Catalog备份任务,确保控制端备份数据库的安全
# 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/var/bacula/working/%n.bsr"
# Priority = 11 # run after main backup
#}
#
# Standard Restore template, to be changed by Console program
# Only one such job is needed for all Jobs/Clients/Storage ...
#
#Job {
# Name = "RestoreFiles"
# Type = Restore
# Client=janus.mazentop.com-fd
# FileSet="Full Set"
# Storage = File
# Pool = Default
# Messages = Standard
# Where = /tmp/bacula-restores
#}
# List of files to be backed up
#FileSet {
# Name = "Full Set"
# Include {
# Options {
# signature = MD5
# }
#
# Put your list of files here, preceded by 'File =', one per line
# or include an external list with:
#
# File = <file-name
#
# Note: / backs up everything on the root partition.
# if you have other partitions such as /usr or /home
# you will probably want to add them too.
#
# By default this is defined to point to the Bacula binary
# directory to give a reasonable FileSet to backup to
# disk storage during initial testing.
#
# File = /usr/local/bacula/sbin
# }
#
# If you backup the root directory, the following two excluded
# files can be useful
#
# Exclude {
# File = /usr/local/bacula/var/bacula/working
# File = /tmp
# File = /proc
# File = /tmp
# File = /.journal
# File = /.fsck
# }
#}
#
# When to do the backups, full backup on first sunday of the month,
# differential (i.e. incremental since full) every other sunday,
# and incremental backups other days
#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/var/bacula/working/bacula.sql"
# }
#}
## Client (File Services) to backup
#Client {
# Name = baculaserver-fd
# Address = baculaserver
# FDPort = 9102
# Catalog = MyCatalog
# Password = "jQP9VBIG2fsRD1L8zZFTCZHSErPMxbxPQ5N32dstkEDQ" # password for FileDaemon
# File Retention = 30 days # 30 days
# Job Retention = 6 months # six months
# AutoPrune = yes # Prune expired Jobs/Files
#}
#
# Second Client (File Services) to backup
# You should change Name, Address, and Password before using
#
#Client {
# Name = baculaserver2-fd
# Address = baculaserver2
# FDPort = 9102
# Catalog = MyCatalog
# Password = "jQP9VBIG2fsRD1L8zZFTCZHSErPMxbxPQ5N32dstkEDQ2" # password for FileDaemon 2
# File Retention = 30 days # 30 days
# Job Retention = 6 months # six months
# AutoPrune = yes # Prune expired Jobs/Files
#}
# Definition of file storage device
#Storage {
# Name = File
# Do not use "localhost" here
# Address = baculaserver # N.B. Use a fully qualified name here
# SDPort = 9103
# Password = "EjNboSvTNCUxSs1WiABKAdaJ1PGW704lV/DleGnls8QJ"
# Device = FileStorage
# Media Type = File
#}
# Definition of DDS tape storage device
#Storage {
# Name = DDS-4
# Do not use "localhost" here
# Address = baculaserver # N.B. Use a fully qualified name here
# SDPort = 9103
# Password = "EjNboSvTNCUxSs1WiABKAdaJ1PGW704lV/DleGnls8QJ" # password for Storage daemon
# Device = DDS-4 # must be same as Device in Storage daemon
# Media Type = DDS-4 # must be same as MediaType in Storage daemon
# Autochanger = yes # enable for autochanger device
#}
# Definition of 8mm tape storage device
#Storage {
# Name = "8mmDrive"
# Do not use "localhost" here
# Address = baculaserver # N.B. Use a fully qualified name here
# SDPort = 9103
# Password = "EjNboSvTNCUxSs1WiABKAdaJ1PGW704lV/DleGnls8QJ"
# Device = "Exabyte 8mm"
# MediaType = "8mm"
#}
# Definition of DVD storage device
#Storage {
# Name = "DVD"
# Do not use "localhost" here
# Address = baculaserver # N.B. Use a fully qualified name here
# SDPort = 9103
# Password = "EjNboSvTNCUxSs1WiABKAdaJ1PGW704lV/DleGnls8QJ"
# Device = "DVD Writer"
# MediaType = "DVD"
#}
# Generic catalog service
Catalog { #Catalog逻辑段用来定义关于日志和数据库的设定
Name = MyCatalog
# Uncomment the following line if you want the dbi driver
# dbdriver = "dbi:mysql"; dbaddress = 127.0.0.1; dbport =
dbname = "bacula"; dbuser = "bacula"; dbpassword = "" #指定库名、用户名和密码
}
# Reasonable message delivery -- send most everything to email address
# and to the console
Messages { #Messages逻辑段用来设定Director端如何保存日志,日志格式,可以将日志信息发送给管理员,要求开启sendmail服务。
Name = Standard
#
# NOTE! If you send to two email or more email addresses, you will need
# to replace the %r in the from field (-f part) with a single valid
# email address in both the mailcommand and the operatorcommand.
# What this does is, it sets the email address that emails would display
# in the FROM field, which is by default the same email as they're being
# sent to. However, if you send email to more than one address, then
# you'll have to set the FROM address manually, to a single address.
# for example, a 'no-reply@mydomain.com', is better since that tends to
# tell (most) people that its coming from an automated source.
#
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
#
# WARNING! the following will create a file that you must cycle from
# time to time as it will grow indefinitely. However, it will
# also keep all your messages if they scroll off the console.
#
append = "/usr/local/bacula/var/bacula/working/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/var/bacula/working/log" = all, !skipped
}
# Default pool definition
Pool { #定义job任务使用的池属性信息,如:设定文件过期时间,是否覆盖过去备份数据,是否自动清除过去备份等。
Name = Default
Pool Type = Backup
Recycle = yes # Bacula can automatically recycle Volumes # 重复使用
AutoPrune = yes # Prune expired volumes # 自动清除过去备份
Volume Retention = 62 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 = 62 days # one year # 备份文件保存时间
Maximum Volume Bytes = 66G # Limit Volume size to something reasonable # 限制备份文件文件最大值
Maximum Volumes = 100000000 # Limit number of Volumes in Pool #设置最多保存多少个备份文件
Maximum Volume Jobs = 1 # 每次执行备份任务创建一个备份文件。
Recycle Current Volume = yes # 使用最近过期的文件存储新备份
Label Format = "${Year}-${Month:p/2/0/r}-${Day:p/2/0/r}-${JobId}" #设定备份文件命名格式,就是备份后的文件名字是当天日期加Job号
}
# Scratch pool definition
Pool {
Name = Scratch
Pool Type = Backup
}
#
# Restricted console used by tray-monitor to get the status of the director
#
Console { #限定console利用tray-monitor获取diretor的状态信息
Name = baculaserver-mon
Password = "6svlrkgboyB/Tqt0b0AvqKk7l/1nIlbwbAbYEOL8tQBV"
CommandACL = status, .status
}
#############################################FileSet
FileSet { #定义要备份的客户端网站数据,即指定需要备份哪些数据,需要排除哪些数据,可指定多个FileSet
Name = web_fileset
Include {
Options {
signature = MD5 #验证方式为MD5码的方式
Compression = GZIP2 #对备份文件进行gzip的压缩
}
File = /home #指定客户端需要备份的文件或目录,公司网站的目录就在这个下面
}
Exclude { #排除不需要备份的文件或目录
File = /home/*/public_html/cache/*
File = /home/*/public_html/bmz_cach/*
File = /home/localbackup
File = /home/restored_home
File = /home/Jack
File = /home/install
File = /home/bak
File = *.tar
File = *.zip
File = *.7z
File = *.gz
File = *.bz2
File = *.sql
File = *.rar
File = *.bak
}
}
FileSet { #定义要备份的客户端数据库数据,我使用的是将数据库导出到/localdatabasebackup下,然后再对这个目录进行备份,导出可以用mysqldump写脚本导出,也可以其它的方法导出为.sql的文件。
Name = database_fileset
Include {
Options {
signature = MD5
Compression = GZIP2
}
File = /localdatabasebackup
}
}
###########################################################
################################################192.168.1.11
Job { #备份任务,注意注释标号,可按照该标号与后面各逻辑端定义相对应
Name = "192.168.1.11_database_job" #备份job的名字,这个可以随便起,在后面的备份操作的时候可以看到
JobDefs = "DefaultJob" #使用上面定义的DefaultJob这个模板
Client = 192.168.1.11-fd #要备份的客户端,“192.168.1.11-fd ”在后面的Client逻辑段定义
Fileset = database_fileset #要备份的客户端数据,“database_fileset”在后面的FileSet逻辑段定义
Schedule = 192.168.1.11_database_schedule #备份任务的执行时间策略,“192.168.1.12_database_schedule”在后面的Schedule逻辑段定义
Storage = 192.168.1.11_database_storage #备份数据的存储介质和路径,“192.168.1.11_database_storage”在后面的Storage逻辑段定义
Priority = 11 #备份优先级,数字越小优先级超高
}
Schedule { #备份任务的执行时间策略,定义名为192.168.1.11_database_schedule的备份任务调度策略
Name = 192.168.1.11_database_schedule
Run = Full on 1 at 00:00 #在每个月的1号零点,进行全备,因为公司服务器较多
Run = Differential on 8 at 00:00 #在每个月的8、15、22、29号零点,进行差异备份
Run = Differential on 15 at 00:00
Run = Differential on 22 at 00:00
Run = Differential on 29 at 00:00
Run = Incremental on 2-7 at 00:00 #剩余的天数进行增量备份
Run = Incremental on 9-14 at 00:00
Run = Incremental on 16-21 at 00:00
Run = Incremental on 23-28 at 00:00
Run = Incremental on 30-31 at 00:00
}
#还有一种写法就是
#Schedule {
# Name = 192.168.1.11_web_schedule
# Run = Full 1st sun at 00:00 #每个月的第一个星期日进行全备
# Run = Differential 2nd-5th sun at 00:00 #每个月的第二个到第五个星期日进行差异备份
# Run = Incremental mon-sat at 00:00 #每周的周一至周六进行增量备份 }
Storage { #备份数据的存储介质和路径;Storage用来指定将客户端数据备份到哪个存储设备上。
Name = 192.168.1.11_database_storage
Address = 192.168.1.10 #存储端SD的地址
SDPort = 9103 #指定存储端SD通信的端口
Password = "6Ua7La41oZ15YwCDj0r3Nfjddm4dLHyOoKSuGfefflIv" #Director端与SD的通讯密码,必须与bacula-sd.conf中Director段密码相同
Device = 192.168.1.11_database_dev #指定数据备份介质,必须与存储SD端的bacula-sd.conf中Device逻辑端的Name相同
Media Type = File #指定数据备份介质类别,必须与存储SD端的bacula-sd.conf中Device逻辑端的Media Type相同
}
Client { #要备份的客户端
Name = 192.168.1.11-fd #Clinet的名称,可以在前面的Job中调用
Address = 192.168.1.11 #要备份的客户端FD主机的IP地址
FDPort = 9102 #与客户端FD通信的端口
Catalog = MyCatalog #记录客户机备份情况的日志名,上面Catalog逻辑段定义
Password = "eyBPuJuxa6pVSL9rN6K4KvpSNsR0JeoU/192.168.1.11" # Director端与FD的验证密码,必须与bacula-fd.conf中Director项的密码相同
File Retention = 62 days #指定保存在数据库中的记录多久循环一次,这里30天,只影响数据库中的记录,不影响备份的文件
Job Retention = 6 months #job的保持周期,应大于File Retention的值
AutoPrune = yes # 当达到指定的保存周期时,是否自动删除数据库中记录,yes表自动清除过期的job
}
Job {
Name = "192.168.1.11_web_job"
JobDefs = "DefaultJob"
Client = 192.168.1.11-fd
Fileset = web_fileset
Schedule = 192.168.1.11_web_schedule
Storage = 192.168.1.11_web_storage
Priority = 12
}
Schedule {
Name = 192.168.1.11_web_schedule
Run = Full on 1 at 00:03
Run = Differential on 8 at 00:03
Run = Differential on 15 at 00:03
Run = Differential on 22 at 00:03
Run = Differential on 29 at 00:03
Run = Incremental on 2-7 at 00:03
Run = Incremental on 9-14 at 00:03
Run = Incremental on 16-21 at 00:03
Run = Incremental on 23-28 at 00:03
Run = Incremental on 30-31 at 00:03
}
Storage {
Name = 192.168.1.11_web_storage
Address = 192.168.1.10
SDPort = 9103
Password = "6Ua7La41oZ15YwCDj0r3Nfjddm4dLHyOoKSuGfefflIv"
Device = 192.168.1.11_web_dev
Media Type = File
}
#############################################################
################################################192.168.1.12
Job {
Name = "192.168.1.12_database_job"
JobDefs = "DefaultJob"
Client = 192.168.1.12-fd
Fileset = database_fileset
Schedule = 192.168.1.12_database_schedule
Storage = 192.168.1.12_database_storage
Priority = 13
}
Schedule {
Name = 192.168.1.12_database_schedule
Run = Full on 2 at 00:20
Run = Differential on 9 at 00:20
Run = Differential on 16 at 00:20
Run = Differential on 23 at 00:20
Run = Differential on 30 at 00:20
Run = Incremental on 1 at 00:20
Run = Incremental on 3-8 at 00:20
Run = Incremental on 10-15 at 00:20
Run = Incremental on 17-22 at 00:20
Run = Incremental on 24-29 at 00:20
Run = Incremental on 31 at 00:20
}
Storage {
Name = 192.168.1.12_database_storage
Address = 192.168.1.10
SDPort = 9103
Password = "6Ua7La41oZ15YwCDj0r3Nfjddm4dLHyOoKSuGfefflIv"
Device = 192.168.1.12_database_dev
Media Type = File
}
Client {
Name = 192.168.1.12-fd
Address = 192.168.1.12
FDPort = 9102
Catalog = MyCatalog
Password = "eyBPuJuxa6pVSL9rN6K4KvpSNsR0JeoU/192.168.1.12"
File Retention = 62 days
Job Retention = 6 months
AutoPrune = yes
}
Job {
Name = "192.168.1.12_web_job"
JobDefs = "DefaultJob"
Client = 192.168.1.12-fd
Fileset = web_fileset
Schedule = 192.168.1.12_web_schedule
Storage = 192.168.1.12_web_storage
Priority = 14
}
Schedule {
Name = 192.168.1.12_web_schedule
Run = Full on 2 at 00:25
Run = Differential on 9 at 00:25
Run = Differential on 16 at 00:25
Run = Differential on 23 at 00:25
Run = Differential on 30 at 00:25
Run = Incremental on 1 at 00:25
Run = Incremental on 3-8 at 00:25
Run = Incremental on 10-15 at 00:25
Run = Incremental on 17-22 at 00:25
Run = Incremental on 24-29 at 00:25
Run = Incremental on 31 at 00:23
}
Storage {
Name = 192.168.1.12_web_storage
Address = 192.168.1.10
SDPort = 9103
Password = "6Ua7La41oZ15YwCDj0r3Nfjddm4dLHyOoKSuGfefflIv"
Device = 192.168.1.12_web_dev
Media Type = File
}
#############################################################
#####################################################
Job { #定义对应的还原任务
Name = "Restore_192.168.1.11_web_job"
Type = Restore
Client = 192.168.1.11-fd
FileSet = web_fileset
Storage = 192.168.1.11_web_storage
Pool = Default
Messages = Standard
Where = /bacula-restores
}
Job {
Name = "Restore_192.168.1.11_database_job"
Type = Restore
Client = 192.168.1.11-fd
FileSet = database_fileset
Storage = 192.168.1.11_database_storage
Pool = Default
Messages = Standard
Where = /bacula-restores
}
#####################################################
Job {
Name = "Restore_192.168.1.12_web_job"
Type = Restore
Client = 192.168.1.12-fd
FileSet = web_fileset
Storage = 192.168.1.12_web_storage
Pool = Default
Messages = Standard
Where = /bacula-restores
}
Job {
Name = "Restore_192.168.1.12_database_job"
Type = Restore
Client = 192.168.1.12-fd
FileSet = database_fileset
Storage = 192.168.1.12_database_storage
Pool = Default
Messages = Standard
Where = /bacula-restores
}
#####################################################
#你有多少要备份的服务器,就在下面一直添加下去,我们公司有50多台,用了两台bacula备份服务器来备份,因为一台在时间上运转不过来。
1.3. bacula的SD配置(bacula-sd.conf)
SD可以是一台单独的服务器,也可以和Director在一台机器上,本例就将SD和Director端放在一起进行配置,SD的配置文件是bacula-sd.conf。
[root@baculaserver etc]# vim bacula-sd.conf #当前目录是/usr/local/bacula/etc/
[root@baculaserver etc]# vim bacula-sd.conf #当前目录是/usr/local/bacula/etc/
# Default Bacula Storage Daemon Configuration file
#
# For Bacula release 5.2.10 (28 June 2012) -- redhat
#
# You may need to change the name of your tape drive
# on the "Archive Device" directive in the Device
# resource. If you change the Name and/or the
# "Media Type" in the Device resource, please ensure
# that dird.conf has corresponding changes.
Storage { # definition of myself # 定义存储
Name = baculaserver-sd
SDPort = 9103 # Director's port # 服务端口
WorkingDirectory = "/usr/local/bacula/var/bacula/working"
Pid Directory = "/var/run"
Maximum Concurrent Jobs = 188
Heartbeat Interval = 30
}
#
# List Directors who are permitted to contact Storage daemon
#
Director { #定义一个控制StorageDaemon的Director
Name = baculaserver-dir #这里的“Name”值必须和Director端配置文件bacula-dir.conf中Director逻辑段名称相同
Password = "6Ua7La41oZ15YwCDj0r3Nfjddm4dLHyOoKSuGfefflIv" #这里的“Password”值必须和Director端配置文件bacula-dir.conf中Storage逻辑段密码相同
}
#
# Restricted Director, used by tray-monitor to get the
# status of the storage daemon
#
Director { #定义一个监控端的Director
Name = baculaserver-mon #这里的“Name”值必须和Director端配置文件bacula-dir.conf中Console逻辑段名称相同
Password = "6svlrkgboyB/Tqt0b0AvqKk7l/1nIlbwbAbYEOL8tQBV" #这里的“Password”值必须和Director端配置文件bacula-dir.conf中Console逻辑段密码相同
Monitor = yes
}
#
# Note, for a list of additional Device templates please
# see the directory <bacula-source>/examples/devices
# Or follow the following link:
# http://bacula.svn.sourceforge.net/viewvc/bacula/trunk/bacula/examples/devices/
#
#
# Devices supported by this Storage daemon
# To connect, the Director's bacula-dir.conf must have the
# same Name and MediaType.
#
#Device {
# Name = FileStorage
# Media Type = File
# Archive Device = /tmp
# LabelMedia = yes; # lets Bacula label unlabeled media
# Random Access = Yes;
# AutomaticMount = yes; # when device opened, read it
# RemovableMedia = no;
# AlwaysOpen = no;
#}
#
# An autochanger device with two drives
#
#Autochanger {
# Name = Autochanger
# Device = Drive-1
# Device = Drive-2
# Changer Command = "/usr/local/bacula/etc/mtx-changer %c %o %S %a %d"
# Changer Device = /dev/sg0
#}
#Device {
# Name = Drive-1 #
# Drive Index = 0
# Media Type = DLT-8000
# Archive Device = /dev/nst0
# AutomaticMount = yes; # when device opened, read it
# AlwaysOpen = yes;
# RemovableMedia = yes;
# RandomAccess = no;
# AutoChanger = yes
# #
# # Enable the Alert command only if you have the mtx package loaded
# # Note, apparently on some systems, tapeinfo resets the SCSI controller
# # thus if you turn this on, make sure it does not reset your SCSI
# # controller. I have never had any problems, and smartctl does
# # not seem to cause such problems.
# #
# Alert Command = "sh -c 'tapeinfo -f %c |grep TapeAlert|cat'"
# If you have smartctl, enable this, it has more info than tapeinfo
# Alert Command = "sh -c 'smartctl -H -l error %c'"
#}
#Device {
# Name = Drive-2 #
# Drive Index = 1
# Media Type = DLT-8000
# Archive Device = /dev/nst1
# AutomaticMount = yes; # when device opened, read it
# AlwaysOpen = yes;
# RemovableMedia = yes;
# RandomAccess = no;
# AutoChanger = yes
# # Enable the Alert command only if you have the mtx package loaded
# Alert Command = "sh -c 'tapeinfo -f %c |grep TapeAlert|cat'"
# If you have smartctl, enable this, it has more info than tapeinfo
# Alert Command = "sh -c 'smartctl -H -l error %c'"
#}
#
# A Linux or Solaris LTO-2 tape drive
#
#Device {
# Name = LTO-2
# Media Type = LTO-2
# Archive Device = /dev/nst0
# AutomaticMount = yes; # when device opened, read it
# AlwaysOpen = yes;
# RemovableMedia = yes;
# RandomAccess = no;
# Maximum File Size = 3GB
## Changer Command = "/usr/local/bacula/etc/mtx-changer %c %o %S %a %d"
## Changer Device = /dev/sg0
## AutoChanger = yes
# # Enable the Alert command only if you have the mtx package loaded
## Alert Command = "sh -c 'tapeinfo -f %c |grep TapeAlert|cat'"
## If you have smartctl, enable this, it has more info than tapeinfo
## Alert Command = "sh -c 'smartctl -H -l error %c'"
#}
#
# A Linux or Solaris LTO-3 tape drive
#
#Device {
# Name = LTO-3
# Media Type = LTO-3
# Archive Device = /dev/nst0
# AutomaticMount = yes; # when device opened, read it
# AlwaysOpen = yes;
# RemovableMedia = yes;
# RandomAccess = no;
# Maximum File Size = 4GB
## Changer Command = "/usr/local/bacula/etc/mtx-changer %c %o %S %a %d"
## Changer Device = /dev/sg0
## AutoChanger = yes
# # Enable the Alert command only if you have the mtx package loaded
## Alert Command = "sh -c 'tapeinfo -f %c |grep TapeAlert|cat'"
## If you have smartctl, enable this, it has more info than tapeinfo
## Alert Command = "sh -c 'smartctl -H -l error %c'"
#}
#
# A Linux or Solaris LTO-4 tape drive
#
#Device {
# Name = LTO-4
# Media Type = LTO-4
# Archive Device = /dev/nst0
# AutomaticMount = yes; # when device opened, read it
# AlwaysOpen = yes;
# RemovableMedia = yes;
# RandomAccess = no;
# Maximum File Size = 5GB
## Changer Command = "/usr/local/bacula/etc/mtx-changer %c %o %S %a %d"
## Changer Device = /dev/sg0
## AutoChanger = yes
# # Enable the Alert command only if you have the mtx package loaded
## Alert Command = "sh -c 'tapeinfo -f %c |grep TapeAlert|cat'"
## If you have smartctl, enable this, it has more info than tapeinfo
## Alert Command = "sh -c 'smartctl -H -l error %c'"
#}
#
# A FreeBSD tape drive
#
#Device {
# Name = DDS-4
# Description = "DDS-4 for FreeBSD"
# Media Type = DDS-4
# Archive Device = /dev/nsa1
# AutomaticMount = yes; # when device opened, read it
# AlwaysOpen = yes
# Offline On Unmount = no
# Hardware End of Medium = no
# BSF at EOM = yes
# Backward Space Record = no
# Fast Forward Space File = no
# TWO EOF = yes
# If you have smartctl, enable this, it has more info than tapeinfo
# Alert Command = "sh -c 'smartctl -H -l error %c'"
#}
#
# Send all messages to the Director,
# mount messages also are sent to the email address
#
Messages { #为存储端SD定义一个日志或消息处理机制
Name = Standard
director = baculaserver-dir = all
}
##################################################################################
#################################################################192.168.1.11
Device { #定义Device
Name = 192.168.1.11_database_dev #定义Device的名称,这个名称在Director端配置文件bacula-dir.conf中的Storage逻辑段Device项中被引用
Media Type = File #指定存储介质的类型,File表示使用文件系统存储
Archive Device = /backup/192.168.1.11/database #Archive Device用来指定备份存储的介质,可以是cd、dvd、tap等,这里是将备份的文件保存的/backup/192.168.1.11/database目录下
LabelMedia = yes; # lets Bacula label unlabeled media #通过Label命令来建立卷文件
Random Access = Yes; #设置是否采用随机访问存储介质,这里选择yes
AutomaticMount = yes; # when device opened, read it #表示当存储设备打开时,是否自动使用它,这选择yes
RemovableMedia = no; #是否确保tap设备总是可用,这里没有使用tap设备,因此设置为no
AlwaysOpen = no;
}
Device {
Name = 192.168.1.11_web_dev
Media Type = File
Archive Device = /backup/192.168.1.11/web
LabelMedia = yes; # lets Bacula label unlabeled media
Random Access = Yes;
AutomaticMount = yes; # when device opened, read it
RemovableMedia = no;
AlwaysOpen = no;
}
##################################################################################
#################################################################192.168.1.12
Device {
Name = 192.168.1.12_database_dev
Media Type = File
Archive Device = /backup/5192.168.1.12/database
LabelMedia = yes; # lets Bacula label unlabeled media
Random Access = Yes;
AutomaticMount = yes; # when device opened, read it
RemovableMedia = no;
AlwaysOpen = no;
}
Device {
Name = 192.168.1.12_web_dev
Media Type = File
Archive Device = /backup/192.168.1.12/web
LabelMedia = yes; # lets Bacula label unlabeled media
Random Access = Yes;
AutomaticMount = yes; # when device opened, read it
RemovableMedia = no;
AlwaysOpen = no;
}
##################################################################################
2. 配置bacula的FD端
2.1 baculaclient1的配置:
[root@balucaclient1 etc]# vim bacula-fd.conf #当前目录为/usr/local/bacula/etc
#
# Default Bacula File Daemon Configuration file
#
# For Bacula release 5.2.10 (28 June 2012) -- redhat
#
# There is not much to change here except perhaps the
# File daemon Name to
#
#
# List Directors who are permitted to contact this File daemon
#
#
Director { #定义一个允许连接FD的控制端
Name = baculaserver-dir #这里的“Name”值必须和Director端配置文件bacula-dir.conf中Director逻辑段名称相同
Password = "eyBPuJuxa6pVSL9rN6K4KvpSNsR0JeoU/192.168.1.11" #这里的“Password”值必须和Director端配置文件bacula-dir.conf中Client逻辑段密码相同
}
#
# Restricted Director, used by tray-monitor to get the
# status of the file daemon
#
Director { #定义一个允许连接FD的监控端
Name = baculaserver-mon #这里的“Name”值必须和Director端配置文件bacula-dir.conf中Console逻辑段名称相同
Password = "6svlrkgboyB/Tqt0b0AvqKk7l/1nIlbwbAbYEOL8tQBV" #这里的“Password”值必须必须与bacula-dir.conf中Console逻辑段内定义password相同
Monitor = yes
}
#
# "Global" File daemon configuration specifications
#
FileDaemon { # this is me #定义一个FD端
Name = baculaclient1-fd
FDport = 9102 # where we listen for the director
WorkingDirectory = /usr/local/bacula/var/bacula/working
Pid Directory = /var/run
Maximum Concurrent Jobs = 20
}
# Send all messages except skipped files back to Director
Messages {
Name = Standard
director = baculaclient1-dir = all, !skipped, !restored
}
2.2 baculaclient2的配置:
[root@balucaclient2 etc]# vim bacula-fd.conf #当前目录为/usr/local/bacula/etc
#
# Default Bacula File Daemon Configuration file
#
# For Bacula release 5.2.10 (28 June 2012) -- redhat
#
# There is not much to change here except perhaps the
# File daemon Name to
#
#
# List Directors who are permitted to contact this File daemon
#
#
Director {
Name = baculaserver-dir
Password = "eyBPuJuxa6pVSL9rN6K4KvpSNsR0JeoU/192.168.1.12"
}
#
# Restricted Director, used by tray-monitor to get the
# status of the file daemon
#
Director {
Name = baculaserver-mon
Password = "6svlrkgboyB/Tqt0b0AvqKk7l/1nIlbwbAbYEOL8tQBV"
Monitor = yes
}
#
# "Global" File daemon configuration specifications
#
FileDaemon { # this is me
Name = baculaclient1-fd
FDport = 9102 # where we listen for the director
WorkingDirectory = /usr/local/bacula/var/bacula/working
Pid Directory = /var/run
Maximum Concurrent Jobs = 20
}
# Send all messages except skipped files back to Director
Messages {
Name = Standard
director = baculaclient2-dir = all, !skipped, !restored
}
四、 bacula服务的启动
1. 在服务器端启动bacula的Director Daemon和Storage Daemon
1.1 启动方式一
[root@baculaserver etc]#/usr/local/bacula/etc/bacula {start|stop|restart|status}
1.2 启动方式二:分别管理各个配置端的方式,依次启动或关闭每个服务
[root@baculaserver etc]#/usr/local/bacula/etc/bacula-dir {start|stop|restart|status}
[root@baculaserver etc]#/usr/local/bacula/etc/bacula-sd {start|stop|restart|status}
[root@baculaserver etc]#/usr/local/bacula/etc/bacula-fd {start|stop|restart|status}
#由于fd端在baculaclient上,在此无需自动bacula-fd服务
[root@baculaserver etc]# netstat -tnpl | grep 910
tcp 0 0 0.0.0.0:9101 0.0.0.0:* LISTEN 1608/bacula-dir
tcp 0 0 0.0.0.0:9102 0.0.0.0:* LISTEN 1643/bacula-fd
tcp 0 0 0.0.0.0:9103 0.0.0.0:* LISTEN 1685/bacula-sd
#在启动bacula的所有服务前,必须启动MySQL数据库,否则连接bacula的控制端是会报错。
2. 在客户端启动bacula的File Daemon
[root@baculaclient etc]#/usr/local/bacula/etc/bacula {start|stop|restart|status}
[root@baculaclient etc]#/usr/local/bacula/etc/bacula-fd {start|stop|restart|status}
#由于baculaclient只做fd端,在此只需启动bacula-fd服务即可
1.1 启动方式一
[root@baculaserver etc]#/usr/local/bacula/etc/bacula {start|stop|restart|status}
1.2 启动方式二:分别管理各个配置端的方式,依次启动或关闭每个服务
[root@baculaserver etc]#/usr/local/bacula/etc/bacula-dir {start|stop|restart|status}
[root@baculaserver etc]#/usr/local/bacula/etc/bacula-sd {start|stop|restart|status}
[root@baculaserver etc]#/usr/local/bacula/etc/bacula-fd {start|stop|restart|status}
#由于fd端在baculaclient上,在此无需自动bacula-fd服务
[root@baculaserver etc]# netstat -tnpl | grep 910
tcp 0 0 0.0.0.0:9101 0.0.0.0:* LISTEN 1608/bacula-dir
tcp 0 0 0.0.0.0:9102 0.0.0.0:* LISTEN 1643/bacula-fd
tcp 0 0 0.0.0.0:9103 0.0.0.0:* LISTEN 1685/bacula-sd
#在启动bacula的所有服务前,必须启动MySQL数据库,否则连接bacula的控制端是会报错。
2. 在客户端启动bacula的File Daemon
[root@baculaclient etc]#/usr/local/bacula/etc/bacula {start|stop|restart|status}
[root@baculaclient etc]#/usr/local/bacula/etc/bacula-fd {start|stop|restart|status}
#由于baculaclient只做fd端,在此只需启动bacula-fd服务即可
五、bacula备份文件(做备份之前要建立/backup/192.168.1.11/web、/backup/192.168.1.11/database等目录)
1. 执行备份
1.1 第一次增量备份,默认会是一个完全备份 #备份前fd中文件有index1.html
*run
A job name must be specified.
The defined Job resources are:
1: 192.168.1.11_database_job
Select Job resource (1-8): 2 #选择备份任务
Run Backup job
JobName: 192.168.1.11_web_job
Level: Incremental
Client: 192.168.1.11-fd
FileSet: web_filese
Pool: File (From Job resource)
Storage: 192.168.1.11_web_storage (From Job resource)
When: 2012-12-14 8:56:58
Priority: 12
OK to run? (yes/mod/no): yes
Job queued. JobId=1
#到处为止,可以开始备份了,在bacula-dir.conf文件中定义的192.168.1.11_web_job是一个增量备份,因此这个备份只是一个增量操作,由于是第一个备份,因此默认192.168.1.11_web_job会做一个完全备份,第二次备份时才执行增量备份
1.2 第二次增量备份,只做增量操作 #备份前fd中文件有index1.html、index2.html
*run
A job name must be specified.
The defined Job resources are:
1: 192.168.1.11_database_job
Select Job resource (1-8): 2 #选择备份任务
Run Backup job
JobName: 192.168.1.11_web_job
Level: Incremental
Client: 192.168.1.11-fd
FileSet: web_filese
Pool: File (From Job resource)
Storage: 192.168.1.11_web_storage (From Job resource)
When: 2012-12-14 8:56:58
Priority: 12
OK to run? (yes/mod/no): yes
Job queued. JobId=2
#这是第二备份,只做一个增量操作
1.3 第三次备份,手动改为差异备份 #备份前fd中文件有index1.html、index2.html 、index3.html
1: Level
2: Storage
3: Job
4: FileSet
5: Client
6: When
7: Priority
8: Pool
9: Plugin Options
Select parameter to modify (1-9): 1 #1表示选择备份类别
Levels:
1: Full
2: Incremental
3: Differential
4: Since
5: VirtualFull
Select level (1-5): 3 #3表示差异备份
Run Backup job
JobName: 192.168.1.11_web_jobb
Level: Differential
Client: 192.168.1.11-fd
FileSet: 192.168.1.11_web_storage
Pool: File (From Job resource)
Storage: 192.168.1.11_web_storage (From Job resource)
When: 2012-12-14 9:00:15
Priority: 10
OK to run? (yes/mod/no): yes
Job queued. JobId=3
2. 查看备份状态
*status
Status available for:
1: Director
2: Storage
3: Client
4: All
Select daemon type for status (1-4): 1
2012-02-15-dir Version: 5.2.10 (14 June 2012) i686-pc-linux-gnu RedHat Enterprise release
Daemon started 14- 1212 09:00, 3 Jobs run since started.
Heap: heap=258,048 smbytes=65,799 max_bytes=113,185 bufs=204 max_bufs=231
Scheduled Jobs:
Level Type Pri Scheduled Name Volume
===================================================================================
Running Jobs:
Console connected at 14- 1212 09:00
No Jobs running.
====
Terminated Jobs:
JobId Level Files Bytes Status Finished Name
====================================================================
1 Full 2,400 97.14 M OK 14-Dec-12 08:57 192.168.1.11_web_job
2 Incr 88 10 M OK 14-Dec-12 08:58 192.168.1.11_web_job
3 Diff 100 14 M OK 14-Dec-12 08:59 192.168.1.11_web_job
#显示备份任务192.168.1.11_web_job第一次为完全备份,第二次为增量备份,第三次为差异备份。
3.查看备份文件
[root@baculaserver etc]# ls /backup/192.168.1.11/web
2012-12-14-1 2012-12-14-2 2012-12-14-3
1. 执行备份
1.1 第一次增量备份,默认会是一个完全备份 #备份前fd中文件有index1.html
*run
A job name must be specified.
The defined Job resources are:
1: 192.168.1.11_database_job
2: 192.168.1.11_web_job
3: 192.168.1.12_database_job
4: 192.168.1.12_web_job
5: Restore_192.168.1.11_web_job
6: Restore_192.168.1.11_database_job
7: Restore_192.168.1.12_web_job
8: Restore_192.168.1.12_database_job
Run Backup job
JobName: 192.168.1.11_web_job
Level: Incremental
Client: 192.168.1.11-fd
FileSet: web_filese
Pool: File (From Job resource)
Storage: 192.168.1.11_web_storage (From Job resource)
When: 2012-12-14 8:56:58
Priority: 12
OK to run? (yes/mod/no): yes
Job queued. JobId=1
#到处为止,可以开始备份了,在bacula-dir.conf文件中定义的192.168.1.11_web_job是一个增量备份,因此这个备份只是一个增量操作,由于是第一个备份,因此默认192.168.1.11_web_job会做一个完全备份,第二次备份时才执行增量备份
1.2 第二次增量备份,只做增量操作 #备份前fd中文件有index1.html、index2.html
*run
A job name must be specified.
The defined Job resources are:
1: 192.168.1.11_database_job
2: 192.168.1.11_web_job
3: 192.168.1.12_database_job
4: 192.168.1.12_web_job
5: Restore_192.168.1.11_web_job
6: Restore_192.168.1.11_database_job
7: Restore_192.168.1.12_web_job
8: Restore_192.168.1.12_database_job
Run Backup job
JobName: 192.168.1.11_web_job
Level: Incremental
Client: 192.168.1.11-fd
FileSet: web_filese
Pool: File (From Job resource)
Storage: 192.168.1.11_web_storage (From Job resource)
When: 2012-12-14 8:56:58
Priority: 12
OK to run? (yes/mod/no): yes
Job queued. JobId=2
#这是第二备份,只做一个增量操作
1.3 第三次备份,手动改为差异备份 #备份前fd中文件有index1.html、index2.html 、index3.html
*run
A job name must be specified.
The defined Job resources are:
1: 192.168.1.11_database_job
Select Job resource (1-8): 2 #选择备份任务
Run Backup job
JobName: 192.168.1.11_web_job
Level: Incremental
Client: 192.168.1.11-fd
FileSet: web_filese
Pool: File (From Job resource)
Storage: 192.168.1.11_web_storage (From Job resource)
When: 2012-12-14 8:58:58
Priority: 12
A job name must be specified.
The defined Job resources are:
1: 192.168.1.11_database_job
2: 192.168.1.11_web_job
3: 192.168.1.12_database_job
4: 192.168.1.12_web_job
5: Restore_192.168.1.11_web_job
6: Restore_192.168.1.11_database_job
7: Restore_192.168.1.12_web_job
8: Restore_192.168.1.12_database_job
Run Backup job
JobName: 192.168.1.11_web_job
Level: Incremental
Client: 192.168.1.11-fd
FileSet: web_filese
Pool: File (From Job resource)
Storage: 192.168.1.11_web_storage (From Job resource)
When: 2012-12-14 8:58:58
Priority: 12
OK to run? (yes/mod/no): mod #mod修改备份任务参数
Parameters to modify:
1: Level
2: Storage
3: Job
4: FileSet
5: Client
6: When
7: Priority
8: Pool
9: Plugin Options
Select parameter to modify (1-9): 1 #1表示选择备份类别
Levels:
1: Full
2: Incremental
3: Differential
4: Since
5: VirtualFull
Select level (1-5): 3 #3表示差异备份
Run Backup job
JobName: 192.168.1.11_web_jobb
Level: Differential
Client: 192.168.1.11-fd
FileSet: 192.168.1.11_web_storage
Pool: File (From Job resource)
Storage: 192.168.1.11_web_storage (From Job resource)
When: 2012-12-14 9:00:15
Priority: 10
OK to run? (yes/mod/no): yes
Job queued. JobId=3
2. 查看备份状态
*status
Status available for:
1: Director
2: Storage
3: Client
4: All
Select daemon type for status (1-4): 1
2012-02-15-dir Version: 5.2.10 (14 June 2012) i686-pc-linux-gnu RedHat Enterprise release
Daemon started 14- 1212 09:00, 3 Jobs run since started.
Heap: heap=258,048 smbytes=65,799 max_bytes=113,185 bufs=204 max_bufs=231
Scheduled Jobs:
Level Type Pri Scheduled Name Volume
===================================================================================
Full Backup 58 14-Dec-12 00:00 192.168.1.11_database_job 2012-12-14-4
Incremental Backup 57 14-Dec-12 02:03 192.168.1.11_web_job 2012-12-14-4
Full Backup 58 14-Dec-12 00:20 192.168.1.12_database_job 2012-12-14-4
Full Backup 58 14-Dec-12 00:25 192.168.1.12_web_job 2012-12-14-4
====
Running Jobs:
Console connected at 14- 1212 09:00
No Jobs running.
====
Terminated Jobs:
JobId Level Files Bytes Status Finished Name
====================================================================
1 Full 2,400 97.14 M OK 14-Dec-12 08:57 192.168.1.11_web_job
2 Incr 88 10 M OK 14-Dec-12 08:58 192.168.1.11_web_job
3 Diff 100 14 M OK 14-Dec-12 08:59 192.168.1.11_web_job
#显示备份任务192.168.1.11_web_job第一次为完全备份,第二次为增量备份,第三次为差异备份。
3.查看备份文件
[root@baculaserver etc]# ls /backup/192.168.1.11/web
2012-12-14-1 2012-12-14-2 2012-12-14-3
转载于:https://blog.51cto.com/liuqs/1088035