Bacula
Fileset资源翻译文档
翻译: 沈小然
版本:1.0
公司:北京方标
日期:2007年 03月 28日
1.1 一个FileSet里可以有多个Include{},每个Include里可以有多个Options{}
1. 概述说明:
由于本人英文有限有些翻译不够准确仅结合本人技术知识翻译,可以做参考不正确的地方还是以官方文档为准。
1.1 一个FileSet里可以有多个Include{},每个Include里可以有多个Options{}
FileSet {
Include {
Options {
signature=SHA1添加SHA1签名,据说这个签名比MD5慢而且写的字节更多,但它会更加难以被hack破解,注意只能有MD5和SHA1两种签名其中的一个被使用。
signature = MD5对所有备份的文件添加md5签名,作者强烈推荐这个选项,这样做的代价只是在备份每个文件上增添了5%的cpu时间和在catalog数据库里为每个文件多写了大于16字节的md5签名。
keepatime=yes|no 如果值是yes备份前会先备份文件的访问时间,恢复时也将保持文件的原有访问时间不变。默认:no,备份邮件时推荐选择yes。
hardlinks=yes|no 默认值:yes。如果yes将按照硬连接轨迹备份文件,如果硬连接过多成百上千的话将消耗大量的cpu资源,使用这个选项最多是备份更多的数据但恢复时不会在原始设备上恢复相同的文件。
mtimeonly=yes|no默认:no,如果yes被选中的文件备份时都以修改时间为准,如果是no则自动按文件的修改时间或访问时间备份,作者推荐no。
aclsupport=yes|no默认:no,如果系统把libacl库安装进系统里支持ACL(access control list)的话bacula会自动将支持acl编译进来,这里选择yes备份和恢复时都会参考acl,注意,如果备份带有acl的ext3,xfs系统的文件或目录,恢复到一个不支持acl的系统例如reiserfs时acl将被忽略
fstype=filesystem-type文件类型可以是下面几种ext2, jfs, ntfs, proc, reiserfs, xfs, usbdevfs, sysfs, smbfs, iso9660. For ext3 systems, use ext2.在一个Options资源里允许你同时指定多个文件系统,如果你指定的文件系统与你要备份的分区不匹配将不会执行备份操作,这个指示常用在防止备份非本地的文件系统,按理说当你设置了这个指示后,你也将同时设置onefs=no以便bacula在文件系统中来回移动,这个选项不会在windows里执行。
hfsplussupport=yes|no这个选项控制是否打开支持Mac OSX HFS plus插件
portable=yes|no默认值no,设置yes时bacula将按照轻便的格式备份文件,只针对win2k/xp/NT。对于Unix,win95/98/Me就不适用,我们推荐no,因为这样会把更多的文件信息备份下来。
onefs=yes|no默认值yes,这个选项是指定bacula备份分区时如果发现该分区里有不同的文件系统存在是否一起备份,yes不备份,no备份。如果你忘记了备份某个特别的分区(例如/dev,/proc,/net,/sys.....)这个选项会很有用,因为它会提醒你该分区里包含了什么不同分区。
如果你想备份多个文件系统或者要把某个分区连同该分区下挂载的nfs,samba数据(前提是没在exclude里定义的)都备份下来的话你可以设置no,但这样做有个弊端可能引起备份回环的问题发生,最好的设置是noefs=no ; fstype=ext2配合。
sparse=yes|no默认值no,这里是设置如果有稀疏的文件(直译)bacula是否将zero字节的部分也备份下来,如果选no不检测sparse file的话将备份文件空白的部分占用很多的磁带或卷空间,选yes检测的话就不备份空白字节,做到这点的代价是bacula必须在备份前检查每个块备份速度将变慢。
wilddir=“string”匹配目录,可以使用正则表达式
wildfile=“string”匹配文件,可以使用正则表达式
exclude=yes|no默认值no,如果选yes则所有加到Option里的条件都做排除处理(不备份),如果排除某个目录则其下子目录都被排除。
}
File = /dev/hd6 备份整个裸设备
File = /root/myfile 备份/root/myfile目录及其子目录
File = /mnt/nfs 备份挂接的nfs文件系统
}
1.2 实例
1.2.1 举例1:
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/
}
}
说明:第一个Include备份所有/etc/backup.list里除了.Z和。gz的文件和目录,并gzip压缩,SHA1签名检测疏文件处理。第二个Include备份/root/myfile目录/usr/lib/下的所有子目录和文件但是*.o,*.exe文件除外。
1.2.2 举例2:备份整个操作系统文件
[kern@rufus k]$ 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
考虑到/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
}
}
或者使用排除c – z 开头的目录
FileSet {
Name = "Full Set"
Include {
Options {
RegexDir = "^/home/[c-z]"
exclude = yes
}
File = /home
}
}
举例4:备份一个裸设备
FileSet {
Name = "RawPartition"
Include {
Options { sparse=yes }
File = /dev/hda2
}
}
举例5:备份Windows文件系统,注意"C:/"
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:/"
}
}
1.2.3 参考的官方文档:
http://www.bacula.org/rel-manual/FileSet_Resource.html
作者注:完全原创文章,严禁剽窃,转载请注明,谢谢!