zbackup 是一个自动去除重复数据的备份工具,基于 rsync 的思路。重复的数据只会存储一份,并进行压缩,可根据需要进行加密。当源数据有变化时候只会备份变化的部分。
特性:
使用并行 LZMA 或者 LZO 压缩来存储数据
内建 AES 加密功能
可以删除老的备份数据
使用 64 位滚动哈希,避免发生软冲突
仓库包含不变的文件,不会对已有的文件进行修改
完全使用 C++ 开发,依赖库很少
可以安全的在产品环境中使用
可在两个仓库中交换数据而无需重新压缩
依赖:
cmake >= 2.8.2 (though it should not be too hard to compile the sources by hand if needed)
cmake
libssl-dev for all encryption, hashing and random numbers
libssl-dev
libprotobuf-dev and protobuf-compiler for data serialization
libprotobuf-dev
protobuf-compiler
liblzma-dev for compression
liblzma-dev
liblzo2-dev for compression (optional)
liblzo2-dev
zlib1g-dev for adler32 calculation
zlib1g-dev
编译:
cd zbackup cmake .make sudo make install # or just run as ./zbackup
使用:
zbackup init --non-encrypted /my/backup/repo tar c /my/precious/data | zbackup backup /my/backup/repo/backups/backup-`date '+%Y-%m-%d'` zbackup restore /my/backup/repo/backups/backup-`date '+%Y-%m-%d'` > /my/precious/backup-restored.tar