amanda
, bacula
, BackupPC
. Those are client/server system featuring many options, whose configuration is rather difficult. Some of them provide user-friendly web interfaces to mitigate this. But Debian contains dozens of other backup software covering all possible use cases, as you can easily confirm with apt-cache search backup
.
rsync
command (from the package of the same name) is used daily to back up these different servers.
rsync
命令对之前备份的内容使用硬链接,这样可以避免使用过多的硬盘空间。 然后rsync
进程只覆盖上次备份后修改过的文件。通过这种机制,大量的备份只占用小的磁盘空间。所有的备份会立即生效并且可以读写(例如,在共享网络上的不同目录),可以迅速比较两个不同日期的文件。
dirvish
程序执行。使用备份存储空间(“空”的),放置有时间戳的备份文件集(这些文件集在dirvish 文档中被成为“vaults”)。
/etc/dirvish/master.conf
文件中。它定义了备份存储空间的位置,要管理的“vaults”,和备份超期的默认值。配置的其他部分在 bank/vault/dirvish/default.conf
文件中,包含对应文件集的特殊配置。
例 9.3. /etc/dirvish/master.conf
文件
bank: /backup exclude: lost+found/ core *~ Runall: root 22:00 expire-default: +15 days expire-rule: # MIN HR DOM MON DOW STRFTIME_FMT * * * * 1 +3 months * * 1-7 * 1 +1 year * * 1-7 1,4,7,10 1
bank
设置备份存储的目录。exclude
设置可以指定要排除的文件(或文件类型)。 Runall
是一个带有时间戳的备份文件集列表,如果备份没有在指定的确切时间触发,可以通过它指定拷贝的日期。必须将时间设定在实际执行时间之前(在Debian 中默认按照 /etc/cron.d/dirvish
10:04 pm)。最后,expire-default
和 expire-rule
设定备份过期时间。上面的例子中,会永久保存每季度第一个周日产生的备份,一年以后删除每月第一个周日的备份,三个月之后其他周日的备份。其他备份保留15天。规则的顺序并不重要,Dirvish 使用最后的匹配规则,如果没找到 expire-rule
匹配,会使用 expire-default
。
例 9.4. /backup/root/dirvish/default.conf
文件
client: rivendell.falcot.com tree: / xdev: 1 index: gzip image-default: %Y%m%d exclude: /var/cache/apt/archives/*.deb /var/cache/man/** /tmp/** /var/tmp/** *.bak
hostname
),主要是在根目录下(tree: /
),除了在 exclude
中列出的文件。备份仅限于一个文件系统中的内容(xdev: 1
)。不包含其他挂载点的文件。产生保存文件的索引(index: gzip
),镜像根据当前日期进行命名(image-default: %Y%m%d
)。
dirvish --vault vault --init
命令来初始化每个文件集。此后每天在删除过期备份之后,就会自动唤起 dirvish-runall
进行备份。