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 进行备份。