分类: 服务器与存储
2015-04-02 18:09:00
原文地址:Bacula 配置 作者:friend-sen
文档信息 | |||
文档名称 | Bacula 配置 | ||
文档编写者 | friend-sen | 文档版本编号 | V1.0 |
文档类型 | 技术文档 | 2010-07-28 | |
备注 | 由于本人英文水平有限,文档中诸多翻译都是结合个人技术知识翻译,仅作参考,以官方文档为准。博客格式比较乱,附件中的文档更适合查阅。 测试环境:Bacula Server系统:Centos 5.3;Bacula Client for Linux系统:RHEL 4;Bacula Client for Windows系统:Windows 7。 |
所有权声明
文档里的资料多数可以在我的博客(http://sens.cublog.cn)中找到,博客中大部分文档也是在网络中引用或转载,我在这里做了整理及修改,目的是为了集大家之所长,为使用Bacula的大家提供更好帮助。如有侵权,还望通知,将予以改正。许多专业术语是我个人的理解,文档中有错误的地方,或者可以用更好的语言表达的,希望将好的建议告诉我,以便错误得到及时更正,共同为使用Bacula的大家提供便利。
文档下载
组成Bacula备份系统有三个主要的部分,包括主控端、存储端和客户端,这三个部分都有各自的配置文件,相对应的是主控端(bacula-dir.conf,下同)、存储端(bacula-sd.conf,下同)和客户端(bacula-fd.conf,下同),各配置文件中的部分项存在一定的关联,官方也用一张图形象的表示了它们之间的关系,看下图:
图中使用箭头连接主控端配置文件的相关项与其它配置文件的相关项,所连接的相关项的值必须是相同的。下面用文件说明一下:
Name值与控制台配置文件(bconsole.conf,下同)的Director{}项、存储端配置文件的Director{}项及客户端配置文件的Director{}项的Name值相同;Password值与控制台配置文件的Director{}项的Password值相同。
Device值与存储端配置文件的Device{}项的Name值相同;
MediaType值与存储端配置文件的Device{}项的MediaType值相同;
Password值与存储端配置文件的Director{}项的Password值相同。
Password值与客户端配置文件的Director{}项的Password值相同。
理解了图中表示的意思,对配置Bacula非常有帮助。所以希望大家先熟悉此图之后再做配置。
下图是主控端配置文件的主要选项。安装Bacula之后,主控端配置文件中的都默认启用了这些选项,图中对其做了简单的介绍:
为什么Job项与其他选项用线连接呢?
因为在执行一个任务(Job)的过程中,需要调用到其他选项的参数设置,从而使得任务的完整。如果这么多的参数全部写在Job选项里,那么就会将导致Job选项的参数设置非常复杂,这样的模块化设计显得更直观,也能使程序运行更效高效。下面用一句话说明一下:
建立一个备份任务(Job)时,就需要选择一台备份的计算机(Client),然后确定需要备份的文件(FileSet)及备份时间周期和备份类型(Schedule),最后选择备份到哪里(Storage)以及文件存储的方式(Pool),让管理者知道备份任务的的情况(Messages)。
注意:Job项也可以是还原任务。
Bacula Director服务管理所有的备份,恢复,验证和存档事务,所以主控端的配置文件也是最为复杂的。下面将对配置文件中各选项的参数设置进行详细的介绍。
Director{}部分的官方文档见The Director Resource。
以下是关于Director{}部分的参数说明
Name = name 指定主控端名称,必选。默认为计算机名-dir。 |
Description = text 用文本字段描述主控端,可选。 |
Password = UA-password 设置主控端密码,一般控制台连接时需要使用。必选。 |
Messages = Messages-resource-name 引用Messages{}的Name值。必选。 |
Working Directory = Directory 指定工作目录,目录必须已经存在,必选。一般在./configure时已经指定。 |
Pid Directory = Directory 指定进程ID文件存放目录,必选。一般在./configure时已经指定。 |
Scripts Directory = Directory 指定脚本目录,可选。 |
QueryFile = Path 指定一个目录和文件的路径,必选。 |
Heartbeat Interval = time-interval 可选。 |
Maximum Concurrent Jobs = number 设置同时执行的最大任务数量,默认设置为1。 |
FD Connect Timeout = time 指定主控端尝试联系客户端开始一个job的超时时间。如果超时将取消该job,默认为30分钟。 |
SD Connect Timeout = time 指定主控端尝试联系存储端开始一个job的超时时间。如果超时将取消该job,默认为30分钟。 |
DirAddresses = IP-address-specification 指定地址和端口监听控制台连接,用法可以查看官方文档。 |
DirPort = port-number 指定端口号监听控制台连接,默认是9101。不与DirAddresses参数同时使用。 |
DirAddress = IP-Address 指定地址监听控制台连接,可选。如果它被指定,那么此地址将与主控端绑定;如果未指定将绑定到本机当前使用的地址。只允许指定一个地址。不与DirAddresses参数同时使用。 |
DirSourceAddress = IP-Address 可选。 |
Statistics Retention = time 指定job记录统计在目录数据库中保留的时间,默认为5年。主要是用于容量规划等等,不是以恢复为目的。 |
VerId = string
|
MaximumConsoleConnections = number 指定控制台最大同时连接数,默认是20。 |
范例
Director { # define myself
Name = ser1-dir
DIRport = 9101 # where we listen for UA connections
QueryFile = "/usr/local/bacula/bin/query.sql"
WorkingDirectory = "/usr/local/bacula/working"
PidDirectory = "/usr/local/bacula/bin/working"
Maximum Concurrent Jobs = 1
Password = "111" # Console password
Messages = Daemon
}
JobDefs选项允许所有可以出现在Job选项中的参数。但是,JobDefs 不会创建一个作业(Job),而是Job{}引用它的参数设置。
JobDefs选项的参数细节可以参考Job选项。
下面贴一下主控端配置文件中默认生成的JobDefs选项范例
JobDefs {
Name = "DefaultJob"
Type = Backup
Level = Incremental
Client = ser1-fd
FileSet = "Full Set"
Schedule = "WeeklyCycle"
Storage = File
Messages = Standard
Pool = File
Priority = 10
Write Bootstrap = "/usr/local/bacula/working/%c.bsr"
}
定义一个客户端的备份作业或还原作业的相关参数。Job{}部分的官方文档见The Job Resource。
当需要引用其他选项的参数设置时,设置为相对应的Name值就可以了。下面用图体现一下,以便更好的理解:
下面是Job{}可以设置的详细参数
Name = name 指定Job{}名称,必选。命名自行指定,建议由计算机名和Job类型组成,如ser1-backup表示计算机ser1的备份任务。 |
Enabled = yesno 是否启用此Job{},可选。 |
Type = job-type Job类型,定义备份作业或还原作业。取值有Backup、Restore、Verify和Admin。 |
Level = job-level 备份类型,当type参数为备份作业时,取值有Full、Incremental和Differential;还原作业不需要设置此选项;当type参数为Verify作业时,取值有InitCatalog、Catalog、VolumeToCatalog和DiskToCatalog。 |
Accurate = yesno 是否启用精确模式。 |
Verify Job = Job-Resource-Name 当type参数为Verify作业时,引用Job{}的Name值;不设置时,默认为记录的最后一次Job。 |
JobDefs = JobDefs-Resource-Name 引用JobDefs{}的Name值。可选。 |
Bootstrap = bootstrap-file 指定引导文件,启动还原作业时自动创建。此参数只用于Job类型为Restore时,此时必选。 |
Write Bootstrap = bootstrap-file-specification 当执行备份作业是,将作业记录写入到一个引导文件。此参数只用于Job类型为Backup时,此时必选。 |
Client = client-resource-name 引用Client{}的Name值,也就是选择需要备份的客户端。必选。 |
FileSet = FileSet-resource-name 引用FlieSet{}的Name值,也就是选择客户端需要备份的目录及文件。必选。 |
Messages = messages-resource-name 引用Messages{}的Name值。必选。 |
Pool = pool-resource-name 引用Pool{}的Name值。必选。 |
Full Backup Pool = pool-resource-name 引用Pool{}的Name值。可选。 |
Differential Backup Pool = pool-resource-name 引用Pool{}的Name值。可选。 |
Incremental Backup Pool = pool-resource-name 引用Pool{}的Name值。可选。 |
Schedule = schedule-name 引用Schedule{}的Name值,设置作业执行的时间周期,可选。如果没有指定,此任务必须手动执行。 |
Storage = storage-resource-name 引用Storage{}的Name值,选择执行Job时的存储端。必选。 |
Max Start Delay = time 最大启动时间,默认为0,无限制。定义作业开始时间的最大超时时间。如果一个作业计划在凌晨1:00,但此时有其他工作再运行,可能就会延迟执行,如果设置为3600(一个小时)到2:00还未执行,此作业将被取消,防止作业在白天执行。 |
Max Run Time = time 指定作业最大允许运行的时间。 |
Incremental|Differential Max Wait Time = time 从bacula 2.3.18此参数已弃用。 |
Incremental Max Run Time = time 指定增量作业最大允许运行的时间。 |
Differential Max Wait Time = time 指定差异作业最大允许运行的时间。 |
Max Run Sched Time = time 最大开始时间和最大运行时间的和 |
Max Wait Time = time 最大等待时间 |
Max Full Interval = time 见官方文档 |
Prefer Mounted Volumes = yesno 默认为yes |
Prune Jobs = yesno 默认为no |
Prune Files = yesno 默认为no |
Prune Volumes = yesno 默认为no |
RunScript {body-of-runscript} 添加脚本使用作业更好的执行,详细查看官方文档 |
Run Before Job = command 引用脚本,详见官方文档。 |
Run After Job = command 引用脚本,详见官方文档。 |
Run After Failed Job = command 引用脚本,详见官方文档。 |
Client Run Before Job = command 引用脚本,详见官方文档。 |
Client Run After Job = command 引用脚本,详见官方文档。 |
Rerun Failed Levels = yesno 当运行任务运行失败后一次备份作业时,将提升更高的备份类型,比如差异备份异常终止,下次备份将执行完全备份。默认为no。 |
Spool Data = yesno 默认为no |
Spool Attributes = yesno 默认为no |
Where = directory 指定文件还原到该客户端的目录。此参数只用于Job类型为Restore时。如果没有指定文件将被还原到其原始位置。默认为/tmp/bacula-restores |
Add Prefix = directory 此参数只用于Job类型为Restore时。 |
Strip Prefix = directory 此参数只用于Job类型为Restore时 |
RegexWhere = expressions 此参数只用于Job类型为Restore时。 |
Replace = replace-option 此参数只用于Job类型为Restore时。当恢复的文件存在时,执行什么操作。取值有always、ifnewer、ifolder和never。 |
Prefix Links=yesno 默认为no |
Maximum Concurrent Jobs = number 允许同时运行的作业数量,默认为1。 |
Reschedule On Error = yesno 是否重新执行发生错误的作业,默认为no。 |
Reschedule Interval = time-specification 重新执行发生错误的作业的间隔时间。 |
Reschedule Times = count 重复次数,默认为0,反复重复。 |
Allow Duplicate Jobs = yesno 默认为no |
Allow Higher Duplicates = yesno 默认为no |
Cancel Lower Level Duplicates = yesno 默认为no |
Cancel Queued Duplicates = yesno 默认为no |
Cancel Running Duplicates = yesno 默认为no |
DuplicateJobProximity = time-specification 见官方文档。 |
Run = job-name 见官方文档。 |
Priority = number 设置作业执行优先级,默认为10。数字越大,优先级越低。 |
Allow Mixed Priority = yesno 默认为no |
Write Part After Job = yesno 默认为no |
备份作业范例
Job {
Name = "ser1-backup"
Type = Backup
Level = Full
Client = ser1-fd
FileSet = "ser1-backup"
Messages = Standard
Pool = Default
Storage = File
Schedule = "OneDay"
Priority = 10
Write Bootstrap = "/usr/local/bacula/working/ser1-backup.bsr"
}
还原作业范例
Job {
Name = "ser1-restore"
Type = Restore
Client = ser1-fd
FileSet = "ser1-backup"
Storage = File
Pool = Default
Messages = Standard
Where = /opt/restore
Bootstrap = "/usr/local/bacula/working/ser1-backup.bsr"
}
定义时间周期使任务可以自动调度任务的执行,也可以覆盖Job{}的备份类型(Level),Pool{},Storage{}和Message{}的默认参数。当Job{}不引用它时,作业就只能手动运行。
Schedule{}部分的官方文档见The Schedule Resource。
Name = name 指定Schedule{}名称,必选。 |
Run = Job-overrides Date-time-specification 指定覆盖Job{}默认参数的参数及执行作业的时间周期。 |
Job-overrides指定覆盖Job{}默认参数的参数,自定义一个特定的作业。例如,设置一个增量备份作业的Message{}定义为输出到一个文件,而每周或每月的完全备份作业的Message{}定义是发送不同邮件。
Level=Incremental 备份类型为Incremental |
Pool=Weekly 引用Name值为Weekly的Pool{} |
Storage= DLT_Drive 引用Name值为DLT_Drive的Storage{} |
Messages=Verbose 引用Name值为Verbose的Messages{} |
FullPool=Full 如果为完全备份作业,引用Name值为Full的Pool{} |
DifferentialPool=Differential 如果为差异备份作业,引用Name值为Differential的Pool{} |
IncrementalPool= Incremental 如果为增量备份作业,引用Name值为Incremental的Pool{} |
SpoolData=yesno 见官方文档。 |
SpoolSize=bytes 见官方文档。 |
WritPartAfterJob=yesno 见官方文档。 |
Date-time-specification定义任务何时执行。关于时间设定规范建议查看详细的官方文档。
以下是关于官方文档的时间设定规范:
second | third | fourth | fifth
sunday | monday | tuesday | wednesday |
thursday | friday | saturday
aug | sep | oct | nov | dec | january |
february | ... | december
<12hour> = 0 | 1 | 2 | ... 12
<12hour>:
<12hour>:
针对时间设定规范中的一些词解释一下:
mday | 月的某一天 |
wday | 周的某一天 |
wom | 月的某一周 |
woy | 年的某一周 |
下面举例说明一下
范例:每天在2:05执行完全备份。
Schedule {
Name = "Daily"
Run = Level=Full daily at 2:05
}
范例:周日2:05执行完全备份,周一到周六2:05执行增量备份。
Schedule {
Name = "WeeklyCycle"
Run = Level=Full sun at 2:05
Run = Level=Incremental mon-sat at 2:05
}
范例:每月第一周的周日2:05执行完全备份,每月第二到第五周的周日2:05执行差异备份,周一到周六2:05执行增量备份。
Schedule {
Name = "MonthlyCycle"
Run = Level=Full Pool=Monthly 1st sun at 2:05
Run = Level=Differential 2nd-5th sun at 2:05
Run = Level=Incremental Pool=Daily mon-sat at 2:05
}
范例:每月1日2:05执行完全备份,其余日期2:05执行增量备份。
Schedule {
Name = "First"
Run = Level=Full on 1 at 2:05
Run = Level=Incremental on 2-31 at 2:05
}
范例:每10分钟执行完全备份。
Schedule {
Name = "TenMinutes"
Run = Level=Full hourly at 0:05
Run = Level=Full hourly at 0:15
Run = Level=Full hourly at 0:25
Run = Level=Full hourly at 0:35
Run = Level=Full hourly at 0:45
Run = Level=Full hourly at 0:55
}
Fileset{}定义哪些文件需要备份或者哪些文件排除在备份任务中,定义一个Fileset{}是每个备份任务必须的。可定义一个文件或者目录清单,可将压缩、加密和签名各种备份方案应用到每个文件。
Fileset{}部分的官方文档见The FileSet Resource,文档部分也引用了Victor’s CUBlog的文档。
Name = name 指定Fileset{}名称,必选。 |
Ignore FileSet Changes = yesno 默认为no。详细说明请参考官方文档 |
Enable VSS = yesno 是否启用卷影复制服务,默认为yes。此指令仅适用于启用VSS的有效的Win32文件守护进程。 |
Include { Options {file-options} ...; file-list } Options { file-options } Exclude { file-list } 设置客户端需要备份的文件及目录的路径,及备份方案。一个Fileset{}可包含多个Include{},一个Include{}可包含多个Options{}。下面再详细说明。 |
Include{}必须包含一个目录列表或文件。正常情况下,目录中的所有子目录及文件都会被备份。
客户端是Windows系统的备份文件路径以“/” 代替“\”,而且需要使用双引号括起来。例,需要备份C盘,路径则以”C:/”表示。
当文件路径存中在空格也需要使用双引号括起来。
以下Options{}参数的说明
compression=GZIP 使用GZIP6压缩格式备份文件 |
signature=SHA1 对备份文件添加SHA1签名。据说比MD5算法慢,但是相对更安全。 |
signature=MD5 对备份文件添加MD5签名。Catalog数据库里将为每个文件多写大于16字节的MD5签名,推荐设置此参数。注意SHA1签名和MD5签名只允许使用一个。 |
basejob=options The options letters specified are used when running a Backup Level=Full with BaseJobs. The options letters are the same than in the verify= option below. |
accurate=options The options letters specified are used when running a Backup Level=Incremental/Differential in Accurate mode. The options letters are the same than in the verify= option below. |
verify=options The options letters specified are used when running a Verify Level=Catalog as well as the DiskToCatalog level job. The options letters may be any combination of the following: i compare the inodes p compare the permission bits n compare the number of links u compare the user id g compare the group id s compare the size a compare the access time m compare the modification time (st_mtime) c compare the change time (st_ctime) d report file size decreases 5 compare the MD5 signature 1 compare the SHA1 signature |
onefs=yesno 默认为yes,这个选项是指定Bacula备份分区时如果发现该分区里有不同的文件系统存在是否一起备份,yes不备份,no备份。如果你忘记了备份某个特别的分区(例如/dev,/proc,/net,/sys.....)这个选项会很有用,因为它会提醒你该分区里包含了什么不同分区。 如果你想备份多个文件系统或者要把某个分区连同该分区下挂载的nfs,samba数据(前提是没在exclude里定义的)都备份下来的话你可以设置no,但这样做有个弊端可能引起备份回环的问题发生,最好的设置是onefs=no ; fstype=ext2配合。 |
honor nodump flag=yesno If your file system supports the nodump flag (e. g. most BSD-derived systems) Bacula will honor the setting of the flag when this option is set to yes. Files having this flag set will not be included in the backup and will not show up in the catalog. For directories with the nodump flag set recursion is turned off and the directory will be listed in the catalog. If the honor nodump flag option is not defined or set to no every file and directory will be eligible for backup. |
portable=yesno 默认为no,如果为yes,Bacula将按照轻便的格式备份文件,以便尽可能多的保存WIN32系统的文件信息。 |
recurse=yesno 设置目录递归,默认为yes。 |
sparse=yesno 默认为no。这里是设置如果有稀疏的文件(直译)Bacula是否将zero字节的部分也备份下来,如果选no不检测sparse file的话将备份文件空白的部分占用很多的磁带或卷空间,选yes检测的话就不备份空白字节,做到这点的代价是Bacula必须在备份前检查每个块备份速度将变慢。 |
readfifo=yesno 默认为no。 |
noatime=yesno |
mtimeonly=yesno 默认为no。如果为yes,备份时将以文件修改时间为准;如果为no,则自动按照文件的修改时间或访问时间备份。 |
keepatime=yesno 默认为no。如果为yes,备份时将先备份文件的访问时间,恢复时也将保持文件的原有访问时间。 |
checkfilechanges=yesno 在2.0.4或更高版本,如果启用此项,客户端备份后将检查每个文件的大小、日期在备份过程中时候改变。如果大小或时间不匹配,将引发错误。建议启用此项。 错误举例: zog-fd: Client1.2007-03-31_09.46.21 Error: /tmp/test mtime changed during backup. |
hardlinks=yesno 默认yes,按照硬链接轨迹备份文件。如果硬链接过多将消耗大量CPU资源。 |
wild=string 指定字符串应用于文件名或目录名。请注意如果Exclude未启用,那么字符串将匹配被包括在内的文件;如果Exclude=yes,那么字符串将匹配被排除在外的文件。可以指定多个字符串;如果排除的是一个目录,那么下面的文件或目录将不做匹配。 |
wilddir=string 指定字符串应用于目录名,此参数不会匹配文件名。 |
wildfile=string 指定字符串应用于非目录。注意这个字符串匹配也适用于完整路径和文件名,那么指定字符串时注意文件名前面的路径。 |
regex=string 指定POSIX扩展正则表达式应用到文件名和目录名,也包括完整的路径。 建议使用简洁的语句,已节省CPU开销;使用双引号将字符串括起来。 |
regexfile=string 指定POSIX扩展正则表达式应用到非目录。 |
regexdir=string 指定POSIX扩展正则表达式应用到目录名。 |
exclude=yesno 默认为no。启用时,匹配的任何文件将不备份。 |
aclsupport=yesno 默认为no。如果系统安装libacl库支持ACL,Bacula会自动将支持acl编译进来。如果选择yes,备份和恢复时都会参考acl。注意,如果备份带有acl的ext3、xfs系统的文件或目录,恢复到一个不支持acl的系统例如reiserfs时acl将被忽略。 |
ignore case=yesno 默认为no,启用时,不区分大小写。 |
fstype=filesystem-type 指定文件和目录的文件系统,此参数不应用于WIN32系统。 在一个Options{}里允许你同时指定多个文件系统,如果你指定的文件系统与你要备份的分区不匹配将不会执行备份操作,这个指示常用在防止备份非本地的文件系统,按理说当你设置了这个指示后,你也将同时设置onefs=no以便bacula在文件系统中来回移动。 允许的文件系统类型包括:ext2, jfs, ntfs, proc, reiserfs, xfs, usbdevfs, sysfs, smbfs, iso9660. For ext3 systems, use ext2. |
DriveType=Windows-drive-type 指定Windows驱动器的类型,此参数不应用于Unix/Linux系统。允许的值有: removable, fixed, remote, cdrom, ramdisk |
hfsplussupport=yesno 这个参数允许控制是否打开支持Mac OSX HFS plus插件。 |
strippath=integer This option will cause integer paths to be stripped from the front of the full path/filename being backed up. This can be useful if you are migrating data from another vendor or if you have taken a snapshot into some subdirectory. This directive can cause your filenames to be overlayed with regular backup data, so should be used only by experts and with great care. |
file-list
一个或多个文件或目录路径,使用’File=’开头。包含空格时,需要使用双引号。Wild-cards 应用于Options{},不应用于file-list。
下面这些例子在file-list中比较特殊:
l 使用‘@’代替’File=’作为开头,‘@’后面为主控端的文件路径,而不是客户端的文件路径。例:
Include {
Options { compression=GZIP }
@/home/files/my-files
}
l ’File=’作为开头,使用‘|’后跟命令、脚本代替文件路径。详细见官方文档。
l ’File=’作为开头,使用‘<’后跟主控端文件路径。详细见官方文档。
l 使用设备、分区代替文件路径。此时也建议设置sparse=yes参数。例:
Include {
Options { signature=MD5; sparse=yes }
File = /dev/hd6
}
l If you explicitly specify a FIFO device name (created with mkfifo), and you add the option readfifo=yes as an option, Bacula will read the FIFO and back its data up to the Volume.详见官方文档。 For example:
Include {
Options {
signature=SHA1
readfifo=yes
}
File = /home/abc/fifo
}
l 使用ExcludeDirContaining = filename参数时,当目录中的文件符合filename值,那么此文件所在的目录将不备份。例:
# List of files to be backed up
FileSet {
Name = "MyFileSet"
Include {
Options {
signature = MD5
}
File = /home
Exclude Dir Containing = .excludeme
}
}
此时/home目录下有两个子目录中包含.excludeme的文件
/home/user/www/cache/.excludeme
/home/user/temp/.excludeme
那么这两个目录将不备份
/home/user/www/cache/
/home/user/temp/
以下是FileSet{}的范例
范例1:第一个Include备份所有/etc/backup.list里除了.Z和.gz的文件和目录,并GZIP压缩,SHA1签名,检测稀疏文件处理。第二个Include备份/root/myfile目录和/usr/lib/目录下的所有子目录和文件,但是*.o,*.exe文件除外。
FileSet {
Name = "Full Set"
Include {
Options {
Compression=GZIP
signature=SHA1
Sparse = yes
}
Options {
wildfile = "*.Z"
wildfile = "*.gz"
Exclude = yes
}
@/etc/backup.list
}
Include {
Options {
wildfile = "*.o"
wildfile = "*.exe"
Exclude = yes
}
File = /root/myfile
File = /usr/lib/
}
}
范例2:备份整个系统
$ df
Filesystem 1k-blocks Used Available Use% Mounted on
/dev/hda5 5044156 439232 4348692 10% /
/dev/hda1 62193 4935 54047 9% /boot
/dev/hda9 20161172 5524660 13612372 29% /home
/dev/hda2 62217 6843 52161 12% /rescue
/dev/hda8 5044156 42548 4745376 1% /tmp
/dev/hda6 5044156 2613132 2174792 55% /usr
none 127708 0 127708 0% /dev/shm
//minimatou/c$ 14099200 9895424 4203776 71% /mnt/mmatou
lmatou:/ 1554264 215884 1258056 15% /mnt/matou
lmatou:/home 2478140 1589952 760072 68% /mnt/matou/home
lmatou:/usr 1981000 1199960 678628 64% /mnt/matou/usr
lpmatou:/ 995116 484112 459596 52% /mnt/pmatou
lpmatou:/home 19222656 2787880 15458228 16% /mnt/pmatou/home
lpmatou:/usr 2478140 2038764 311260 87% /mnt/pmatou/usr
deuter:/ 4806936 97684 4465064 3% /mnt/deuter
deuter:/home 4806904 280100 4282620 7% /mnt/deuter/home
deuter:/files 44133352 27652876 14238608 67% /mnt/deuter/files
考虑到/tmp、/proc,nfs,samba文件系统.journal;.autofsck应该排除,则设置如下:
FileSet {
Name = Include_example
Include {
Options {
wilddir = /proc
wilddir = /tmp
wildfile = "/.journal"
wildfile = "/.autofsck"
exclude = yes
}
File = /
File = /boot
File = /home
File = /rescue
File = /usr
}
}
范例3:只备份带有字母a和字母b的子目录
FileSet {
Name = "Full Set"
Include {
Options {
wilddir = "/home/a*"
wilddir = "/home/b*"
}
File = /home
}
}
范例4:排除c – z 开头的目录
FileSet {
Name = "Full Set"
Include {
Options {
RegexDir = "^/home/[c-z]"
exclude = yes
}
File = /home
}
}
范例5:备份一个分区或设备
FileSet {
Name = "RawPartition"
Include {
Options { sparse=yes }
File = /dev/hda2
}
}
范例6:备份Windows文件系统
FileSet {
Name = "Windows 2000"
Include {
Options {
signature = MD5
IgnoreCase = yes
# Exclude directories full of lots and lots of useless little files
WildDir = "[A-Z]:/Documents and Settings/*/Cookies"
WildDir = "[A-Z]:/Documents and Settings/*/Recent"
Exclude = yes
}
File = "C:/"
File = "D:/"
}
}
Client{}为主控端定义了所属客户端的属性,需要将每台需要备份的客户端都定义一个Client{}。The Client Resource
Name = name 指定Client{}名称,可设置为客户端计算机名-fd,有利于记忆。必选。 |
Address = address 指定客户端地址,可以是IP或者计算机名,如果选择计算机名,必须在/etc/hosts文件中加入解析条目,让系统能解析到此计算机名。必选。 |
FD Port = port-number 指定客户端监听端口号。默认为9102。 |
Catalog = Catalog-resource-name 引用Catalog{}的Name值,为客户端调用。必选。 |
Password = password 指定客户端的密码,出于安全原因,最好设置复杂密码,必选。 |
File Retention = time-period-specification 定义文件记录在Catalog数据库中的保留时间,不影响已存档的备份文件,需要设置AutoPrune = yes。默认60天。 |
Job Retention = time-period-specification 定义任务记录在Catalog数据库中的保留时间,不影响已存档的备份文件,需要设置AutoPrune = yes。默认6个月。 |
AutoPrune = yesno 是否自动修剪,默认为yes。 |
Maximum Concurrent Jobs = number 设置同时进行的作业最大数,默认为1。 |
Priority = number 设置客户端的优先级,可以设置1到1000,数字越小优先级越高。 |
范例
Client {
Name = ser1-fd
Address = ser1
FDPort = 9102
Catalog = MyCatalog
Password = "333" # password for FileDaemon
File Retention = 30 days # 30 days
Job Retention = 6 months # six months
AutoPrune = yes # Prune expired Jobs/Files
}
Storage {}为主控端定义了存储端的属性。至少存在一个存储端。
Name = name 指定Storage {}名称,必选。 |
Address = address 指定存储端的地址,可以是IP或者计算机名,如果选择计算机名,必须在/etc/hosts文件中加入解析条目,让系统能解析到此计算机名。必选。 |
SD Port = port 指定存储端的端口号,默认为9103。 |
Password = password 指定存储端的密码。出于安全原因,最好设置复杂密码,必选。 |
Device = device-name 指定存储的设备。引用存储端配置文件的Device{}的Name值,必选。 |
Media Type = MediaType 与存储端配置文件的Device{}的Media Type值相同,必选。详见官方文档。 |
Autochanger = yesno 默认为no,详见官方文档。 |
Maximum Concurrent Jobs = number 定义此存储端所允许同时进行的任务最大数量,默认为1。 |
AllowCompression = yesno 此存储端是否允许压缩,默认为yes,此参数可选。如果为no,那么将忽略Fileset{}中Options{}的compression参数。 |
Heartbeat Interval = time-interval 默认为0,可选。 |
范例
Storage {
Name = File
# Do not use "localhost" here
Address = ser1 # N.B. Use a fully qualified name here
SDPort = 9103
Password = "222"
Device = FileStorage
Media Type = File
}
Name = name | 指定Catalog{}名称,必选。 |
password = password | 指定数据库密码 |
DB Name = name | 指定数据库名称 |
user = user | 指定数据库用户 |
DB Address = address | 指定数据库地址 |
DB Port = port | 指定数据库端口号 |
范例
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 = ""
}
Name = name | 指定Messages{}名称,必选。 |
MailCommand = command | 设置发送邮件通知的指令 |
OperatorCommand = command | 默认值 |
范例
Messages {
Name = Standard
mailcommand = "/usr/local/bacula/bin/bsmtp -h localhost -f \"\(Bacula\) \<%r\>\" -s \"Bacula: %t %e of %c %l\" %r"
operatorcommand = "/usr/local/bacula/bin/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/working/log" = all, !skipped
catalog = all
}
Name = name | 指定Pool{}名称,必选。 |
Pool Type = type | 指定Pool{}类型。 |
Storage = storage-resource-name | 引用Storage {}的Name值 |
AutoPrune = yesno | 是否自动修剪 |
Volume Retention = time-period-specification | Volume保留时间,默认为1年。 |
Recycle = yesno | 是否重复使用Volume |
范例
Pool {
Name = Default
Pool Type = Backup
Recycle = yes # Bacula can automatically recycle Volumes
AutoPrune = yes # Prune expired volumes
Volume Retention = 365 days # one year
}
此选项一般设置托盘监控相关参数
Name = name | 指定Console{}名称,必选。 |
Password = password | 指定Console{}密码,必选。 |
CommandACL = name-list | 默认值 |
范例
Console {
Name = ser1-mon
Password = "444"
CommandACL = status, .status
}
#
# 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.0.1 (24 February 2010) -- 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 = ser1-dir
DIRport = 9101 # where we listen for UA connections
QueryFile = "/usr/local/bacula/bin/query.sql"
WorkingDirectory = "/usr/local/bacula/working"
PidDirectory = "/usr/local/bacula/bin/working"
Maximum Concurrent Jobs = 1
Password = "111" # Console password
Messages = Daemon
}
JobDefs {
Name = "DefaultJob"
Type = Backup
Level = Incremental
Client = ser1-fd
FileSet = "Full Set"
Schedule = "WeeklyCycle"
Storage = File
Messages = Standard
Pool = File
Priority = 10
Write Bootstrap = "/usr/local/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 = ser12-fd
# JobDefs = "DefaultJob"
#}
# 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
RunBeforeJob = "/usr/local/bacula/bin/make_catalog_backup.pl MyCatalog"
# This deletes the copy of the catalog
RunAfterJob = "/usr/local/bacula/bin/delete_catalog_backup"
Write Bootstrap = "/usr/local/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=ser1-fd
FileSet="Full Set"
Storage = File
Pool = Default
Messages = Standard
Where = /tmp/bacula-restores
}
#localhost
Job {
Name = "ser1-backup"
Type = Backup
Level = Full
Client = ser1-fd
FileSet = "ser1-backup"
Messages = Standard
Pool = client-pool
Storage = File
Schedule = "OneDay"
Priority = 10
Write Bootstrap = "/usr/local/bacula/working/ser1-backup.bsr"
}
Job {
Name = "ser1-restore"
Type = Restore
Client = ser1-fd
FileSet = "ser1-backup"
Storage = File
Pool = client-pool
Messages = Standard
Where = /opt/restore
Bootstrap = "/usr/local/bacula/working/ser1-backup.bsr"
}
#redhat
Job {
Name = "redhat-backup"
Type = Backup
Level = Full
Client = redhat-fd
FileSet = "redhat-backup"
Messages = Standard
Pool = client-pool
Storage = File
Schedule = "OneDay"
Priority = 10
Write Bootstrap = "/usr/local/bacula/working/redhat-backup.bsr"
}
Job {
Name = "redhat-restore"
Type = Restore
Client = redhat-fd
FileSet = "redhat-backup"
Storage = File
Pool = client-pool
Messages = Standard
Where = /opt/restore
Bootstrap = "/usr/local/bacula/working/redhat-backup.bsr"
}
#sen-lenovo
Job {
Name = "sen-lenovo-backup"
Type = Backup
Level = Full
Client = sen-lenovo-fd
FileSet = "sen-lenovo-backup"
Messages = Standard
Pool = client-pool
Storage = File
Schedule = "OneDay"
Priority = 10
Write Bootstrap = "/usr/local/bacula/working/sen-lenovo-backup.bsr"
}
Job {
Name = "sen-lenovo-restore"
Type = Restore
Client = sen-lenovo-fd
FileSet = "sen-lenovo-backup"
Storage = File
Pool = client-pool
Messages = Standard
Where = /opt/restore
Bootstrap = "/usr/local/bacula/working/sen-lenovo-backup.bsr"
}
# List of files to be backed up
FileSet {
Name = "Full Set"
Include {
Options {
signature = MD5
}
File = /usr/local/bacula/bin
}
Exclude {
File = /usr/local/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
}
# one day
Schedule {
Name = "OneDay"
Run = Level=Full daily at 18:18
}
# This is the backup of the catalog
FileSet {
Name = "Catalog"
Include {
Options {
signature = MD5
}
File = "/usr/local/bacula/working/bacula.sql"
}
}
#localhost
FileSet {
Name = "ser1-backup"
Include {
Options {
compression=GZIP
}
File = /ser1
}
}
#redhat
FileSet {
Name = "redhat-backup"
Include {
Options {
compression=GZIP
}
File = /redhat
}
}
#sen-lenovo
FileSet {
Name = "sen-lenovo-backup"
Include {
Options {
compression=GZIP
}
File = c:/sen-lenovo/
}
}
# Client (File Services) to backup
#ser1
Client {
Name = ser1-fd
Address = ser1
FDPort = 9102
Catalog = MyCatalog
Password = "333" # password for FileDaemon
File Retention = 30 days # 30 days
Job Retention = 6 months # six months
AutoPrune = yes # Prune expired Jobs/Files
}
#redhat
Client {
Name = redhat-fd
Address = redhat
FDPort = 9102
Catalog = MyCatalog
Password = "333" # password for FileDaemon
File Retention = 30 days # 30 days
Job Retention = 6 months # six months
AutoPrune = yes # Prune expired Jobs/Files
}
#sen-lenovo
Client {
Name = sen-lenovo-fd
Address = sen-lenovo
FDPort = 9102
Catalog = MyCatalog
Password = "333" # password for FileDaemon
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 = ser1 # N.B. Use a fully qualified name here
SDPort = 9103
Password = "222"
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/bin/bsmtp -h localhost -f \"\(Bacula\) \<%r\>\" -s \"Bacula: %t %e of %c %l\" %r"
operatorcommand = "/usr/local/bacula/bin/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/working/log" = all, !skipped
catalog = all
}
#
# Message delivery for daemon messages (no job).
Messages {
Name = Daemon
mailcommand = "/usr/local/bacula/bin/bsmtp -h localhost -f \"\(Bacula\) \<%r\>\" -s \"Bacula daemon message\" %r"
mail = root@localhost = all, !skipped
console = all, !skipped, !saved
append = "/usr/local/bacula/working/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
}
#client-pool
Pool {
Name = client-pool
Use Volume Once = yes
Pool Type = Backup
Recycle = yes # Bacula can automatically recycle Volumes
AutoPrune = yes # Prune expired volumes
Volume Retention = 365 days # one year
LabelFormat = "${Client}-storage-${Year}-${Month:p/2/0/r}-${Day:p/2/0/r}-id${JobId}"
}
#
# Restricted console used by tray-monitor to get the status of the director
#
Console {
Name = ser1-mon
Password = "444"
CommandACL = status, .status
}
设置连接主控端
Name = name | 指定Director{}名称,设置主控端配置文件中Director{}的Name值,必选。 |
Password = password | 指定主控端配置文件Storage{}的Password值,必选。 |
连接主控端设置范例
Director {
Name = ser1-dir
Password = "222"
}
托盘监控相关设置
Name = name | 指定Director{}名称,设置托盘监控配置文件中Monitor{}的Name值,必选。 |
Password = password | 指定托盘监控配置文件中Storage{}的Password值,必选。 |
Monitor = yesno | 是否开启监控。默认值no |
托盘监控相关设置范例
Director {
Name = ser1-mon
Password = "444"
Monitor = yes
}
Name = name | 指定Storage{}名称,必选。 |
Working Directory = Directory | 指定工作目录,目录必须已经存在,必选。一般在./configure时已经指定。 |
Pid Directory = Directory | 指定进程ID文件存放目录,必选。一般在./configure时已经指定。 |
SDAddresses = IP-address-specification | 指定地址和端口监听主控端连接,详细用法可查看官方文档(Storage Resource)。 |
SDPort = port-number | 指定端口监听主控端连接,默认是9103。不与SDAddresses参数同时使用。 |
SDAddress = IP-Address | 指定地址监听主控端连接,可选。如果它被指定,那么此地址将与存储端绑定;如果未指定将绑定到本机当前使用的地址。只允许指定一个地址。不与SDAddresses参数同时使用。 |
Maximum Concurrent Jobs = number | 设置同时执行的最大任务数量,默认设置为10。 |
Client Connect Wait = time-interval | 客户端连接超时时间。默认为30分钟。 |
Heartbeat Interval = time-interval | 可选。 |
范例
Storage { # definition of myself
Name = ser1-sd
SDPort = 9103 # Director's port
WorkingDirectory = "/usr/local/bacula/working"
Pid Directory = "/usr/local/bacula/bin/working"
Maximum Concurrent Jobs = 20
}
Name = Device-Name | 指定Device{}的名称,必选。 |
Archive Device = name-string | 指定存储设备的路径,可以使磁带驱动器,也可以是一个目录名,必选。 |
Device Type = type-specification | 指定该设备的类型。文件、磁带或DVD。 |
Media Type = name-string | 默认值。 |
Autochanger = yesno | 是否自动更换设备,默认为No。如果是yes,设备必须能自动更换磁带。 |
Maximum Concurent Jobs = number | 设置最大Job连接数 |
Always Open = yesno | 设置设备是否始终保持可用。如果是磁带强烈建议设置为yes;如果是文件存储,设置为no,在需要时自动打开。 |
Removable media = yesno | 可移动媒体支持,默认为no。 |
Random access = yesno | 是否随机存取,默认为yes。如果设备是usb的DVD及所有的文件系统则设置为yes;如果是磁带则为no。 |
范例
Device {
Name = FileStorage
Media Type = File
Archive Device = /opt/backup
LabelMedia = yes; # lets Bacula label unlabeled media
Random Access = Yes;
AutomaticMount = yes; # when device opened, read it
RemovableMedia = no;
AlwaysOpen = no;
}
此选项不再做介绍,与主控端配置文件的Messages{}的用法一样,可供参考。
贴一下范例
Messages {
Name = Standard
director = ser1-dir = all
}
#
# Default Bacula Storage Daemon Configuration file
#
# For Bacula release 5.0.1 (24 February 2010) -- 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 = ser1-sd
SDPort = 9103 # Director's port
WorkingDirectory = "/usr/local/bacula/working"
Pid Directory = "/usr/local/bacula/bin/working"
Maximum Concurrent Jobs = 20
}
#
# List Directors who are permitted to contact Storage daemon
#
Director {
Name = ser1-dir
Password = "222"
}
Director {
Name = ser1-mon
Password = "444"
Monitor = yes
}
Device {
Name = FileStorage
Media Type = File
Archive Device = /opt/backup
LabelMedia = yes; # lets Bacula label unlabeled media
Random Access = Yes;
AutomaticMount = yes; # when device opened, read it
RemovableMedia = no;
AlwaysOpen = no;
}
Messages {
Name = Standard
director = ser1-dir = all
}
设置连接主控端
Name = name | 指定Director{}名称,设置主控端配置文件中Director{}的Name值,必选。 |
Password = password | 指定主控端配置文件Clinet{}的Password值,必选。 |
连接主控端设置范例
Director {
Name = ser1-dir
Password = "333"
}
托盘监控相关设置
Name = name | 指定Director{}名称,设置托盘监控配置文件中Monitor{}的Name值,必选。 |
Password = password | 指定托盘监控配置文件中Client{}的Password值,必选。 |
Monitor = yesno | 是否开启监控。默认值no |
托盘监控相关设置范例
Director {
Name = ser1-mon
Password = "444"
Monitor = yes
}
Name = name | 指定FileDaemon{}名称,必选。 |
Working Directory = Directory | 指定工作目录,目录必须已经存在,必选。一般在./configure时已经指定。 |
Pid Directory = Directory | 指定进程ID文件存放目录,必选。一般在./configure时已经指定。 |
Heartbeat Interval = time-interval | 可选。 |
Maximum Concurrent Jobs = number | 设置同时执行的最大任务数量,默认设置为2。 |
FDAddresses = IP-address-specification | 指定地址和端口监听主控端连接,详细用法可查看官方文档(Client/File daemon Configuration)。 |
FDPort = port-number | 指定端口监听主控端连接,默认是9102。不与FDAddresses参数同时使用。 |
FDAddress = IP-Address | 指定地址监听主控端连接,可选。如果它被指定,那么此地址将与客户端端绑定;如果未指定将绑定到本机当前使用的地址。只允许指定一个地址。不与FDAddresses参数同时使用。 |
FDSourceAddress = IP-Address | 指定地址监听存储端连接,可选。如果它被指定,那么此地址将与客户端端绑定;如果未指定将根据默认路由表。 |
SDConnectTimeout = time-interval | 指定连接到存储端的超时时间,默认为30分钟。 |
范例
FileDaemon { # this is me
Name = ser1-fd
FDport = 9102 # where we listen for the director
WorkingDirectory = /usr/local/bacula/working
Pid Directory = /usr/local/bacula/bin/working
Maximum Concurrent Jobs = 20
}
此选项不再做介绍,与主控端配置文件的Messages{}的用法一样,可供参考。
贴一下范例
Messages {
Name = Standard
director = ser1-dir = all, !skipped, !restored
}
#
# Default Bacula File Daemon Configuration file
#
# For Bacula release 5.0.1 (24 February 2010) -- 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 = ser1-dir
Password = "333"
}
#
# Restricted Director, used by tray-monitor to get the
# status of the file daemon
#
Director {
Name = ser1-mon
Password = "444"
Monitor = yes
}
#
# "Global" File daemon configuration specifications
#
FileDaemon { # this is me
Name = ser1-fd
FDport = 9102 # where we listen for the director
WorkingDirectory = /usr/local/bacula/working
Pid Directory = /usr/local/bacula/bin/working
Maximum Concurrent Jobs = 20
}
# Send all messages except skipped files back to Director
Messages {
Name = Standard
director = ser1-dir = all, !skipped, !restored
}
有配置文件中控制台的配置文件是最简单的。一般情况下,除了更改密码,其他均不需要更改。它负责连接主控端。
Name = name | 指定主控端名称。设置主控端配置文件中Director{}的Name值,必选。 |
DIRPort = port-number | 指定主控端端口号,默认为9101。 |
Address = address | 指定主控端地址。可以是IP或者计算机名,如果选择计算机名,必须在/etc/hosts文件中加入解析条目,让系统能解析到此计算机名。必选。 |
Password = password | 指定主控端密码。设置主控端配置文件中Director{}的Password值,必选。 |
范例
Director {
Name = ser1-dir
DIRport = 9101
address = ser1
Password = "111"
}
如果你使用GNOME版本的控制台,就可以使用此选项定义窗口的字体。
可选,不必指定。
Name = name | 指定ConsoleFont{}名称。必选 |
Font = Pango Font Name | 指定了Pango格式的字体,默认为 Font = "LucidaTypewriter 9" |
范例
ConsoleFont {
Name = Default
Font = "Monospace 10"
}
可以为控制台设置不同的安全级别。详细可参考官方文档(Console Configuration)。
可选,不必指定。
#
# Bacula User Agent (or Console) Configuration File
#
Director {
Name = ser1-dir
DIRport = 9101
address = ser1
Password = "111"
}
Name = name | 指定Monitor{}名称。用于连接到主控端、存储端及客户端,必选。 |
Password = password | 设置与控制台配置文件Console{}的Password值相同,必选。 |
Refresh Interval = time | 刷新间隔时间默认为5秒,不能超过10分钟,小于1秒。 |
Name = name | 指定Director{}名称,此名称显示在监控进程的列表里,必选。 |
DIRPort = port-number | 指定主控端端口号,默认9101。 |
Address = address | 指定主控端地址。可以是IP或者计算机名,如果选择计算机名,必须在/etc/hosts文件中加入解析条目,让系统能解析到此计算机名。必选。 |
Name = name | 指定Storage{}名称,此名称显示在监控进程的列表里,必选。 |
Address = address | 指定存储端地址。可以是IP或者计算机名,如果选择计算机名,必须在/etc/hosts文件中加入解析条目,让系统能解析到此计算机名。必选。 |
SD Port = port | 指定存储端端口号,默认9103。 |
Password = password | 指定存储端监控端口号,必选。 |
Name = name | 指定Client{}名称,此名称显示在监控进程的列表里,必选。 |
Address = address | 指定客户端地址。可以是IP或者计算机名,如果选择计算机名,必须在/etc/hosts文件中加入解析条目,让系统能解析到此计算机名。必选。 |
FD Port = port-number | 指定存储端端口号,默认9102。 |
Password = password | 指定客户端监控端口号,必选。 |
#
# Bacula Tray Monitor Configuration File
#
Monitor {
Name = ser1-mon
Password = "444" # password for the Directors
RefreshInterval = 5 seconds
}
Client {
Name = ser1-fd
Address = ser1
FDPort = 9102
Password = "444" # password for FileDaemon
}
Storage {
Name = ser1-sd
Address = ser1
SDPort = 9103
Password = "444" # password for StorageDaemon
}
Director {
Name = ser1-dir
DIRport = 9101
address = ser1
}
为了更好理解,下面贴一下主控端、存储端及客户端的配置文件范例
主控端配置文件关于监控相关设置
#
# Restricted console used by tray-monitor to get the status of the director
#
Console {
Name = ser1-mon
Password = "444"
CommandACL = status, .status
}
存储端配置文件关于监控相关设置
Director {
Name = ser1-mon
Password = "444"
Monitor = yes
}
客户端配置文件关于监控相关设置
#
# Restricted Director, used by tray-monitor to get the
# status of the file daemon
#
Director {
Name = ser1-mon
Password = "444"
Monitor = yes
}
Bacula
启动Bacula服务之前,可以先测试一下对应的配置文件是否有错误,如下
# cd /usr/local/bacula/bin
# ./bacula-dir -t -c bacula-dir.conf
#./bacula-fd -t -c bacula-fd.conf
#./bacula-sd -t -c bacula-sd.conf
#./bconsole -t -c bconsole.conf
#./bwx-console -t -c bwx-console.conf
#./bat -t -c bat.conf
# su
启动主控端服务
# /etc/init.d/bacula-dir start
启动客户端服务。Windows Bacula客户端服务名称Bacula-fd(Bacula File Service)
# /etc/init.d/bacula-fd start
启动存储端服务
# /etc/init.d/bacula-sd start
一步启动|关闭|重启|状态Bacula三个服务
# /usr/local/bacula/bin/bacula start|stop|restart|status
查看Bacula是否处于监听状态
# netstat –an |grep 910
bacula-dir 9101
bacula-fd 9102
bacula-sd 9103
文档下载 Bacula 配置.pdf