"The holy grail of backup software"
Thomas Waldmann @ easterhegg 2015 (updated)
authenticated encryption
easy pruning of old backups
simple backend (k/v, fs, via ssh)
FOSS (BSD license)
good docs
good platform / arch support
xattr / acl support
FUSE support ("mount a backup")
blosc library:
multithreaded, highly optimized
lz4hc (very fast, "high compression")
zlib (faster than the implementation from stdlib)
Works, but beta - be careful! Be more careful with code from git.
attic 0.14 from 2014-12-17
don't use anything older!
esp. no msgpack < 0.4.6!
official repo: jborg/attic
unofficial repo: attic/merge:
master == same as official stuff
merge == conservative merges
merge-all == merge + more
bus-factor++, fork?
improve scalability / reliability / security
pull backups? backup-only mode?
better logging / exception handling
more backends? http / ftp / aws / google / ...
other platforms / architectures
<you name it>
test scalability / reliability / security
file bugs
file feature requests
improve docs
contribute code
spread the word
create dist packages
attic-backup.org (original)
github.com/attic/merge (unofficial)
#attic on chat.freenode.net
Just grab me, I am here all days!
Thomas J Waldmann @ twitter
I'll show a developer installation / recent code.
If too complicated, just try something like:
Or use the binary packages from:
https://attic-backup.org/downloads/releases/0.14/
apt-get install attic
# Debian / Ubuntu
# Python 3.x (>= 3.2) + Headers, Py Package Installer
apt-get install python3.4-dev python3.4 python3-pip
# we need OpenSSL + Headers for Crypto
apt-get install libssl-dev openssl
# ACL support Headers + Library
apt-get install libacl1-dev libacl1
# if you do not have gcc / make / etc. yet
apt-get install build-essential
# optional: lowlevel FUSE py binding - to mount backup archives
apt-get install python3-llfuse fuse
# optional: for unit testing
apt-get install fakeroot
# A) system-wide install with pip, latest original release:
sudo pip install attic
# note: maybe you have to use pip3 to get the python3 pip
# B) isolated install, latest attic/merge git repo code:
mkdir attic ; cd attic
git clone https://github.com/attic/merge.git attic
# note: use branch "merge" for conservative changes
cd attic
git checkout merge-all # latest / most features
apt-get install python-virtualenv
virtualenv --python=python3 ../attic-env
source ../attic-env/bin/activate # always before using!
# install attic + dependencies into virtualenv
pip install cython # compile .pyx -> .c
pip install tox # optional, for running unit tests
pip install -e .
# check your install
fakeroot -u tox
# initialize a repository:
attic init /tmp/attic
# create a "first" archive inside this repo:
attic create /tmp/attic::first ~/Desktop
# create a "second" archive, more verbose:
attic create --progress --stats /tmp/attic::second ~/Desktop
# even more verbose:
attic create -v --stats /tmp/attic::third ~/Desktop
# list repo / archive contents:
attic list /tmp/attic
attic list /tmp/attic::first
# extract ("restore") from an archive to cwd:
mkdir test ; cd test
attic extract /tmp/attic::third
# simulate extraction (good test):
attic extract -v --dry-run /tmp/attic::third
# check consistency of repo:
attic check /tmp/attic
# info about repo:
attic info /tmp/attic
# delete archive:
attic delete /tmp/attic::first
# delete repo:
attic delete /tmp/attic
# options, options, options, ...
attic init --help
# create a encrypted, compressed repo:
# 21 = lz4 level 1 = very fast, for fast repo storage
attic init -e keyfile -c 21 /tmp/attic-enc
# create a encrypted, compressed repo:
# 69 = zlib level 9 = a lot slower, for slow repo storage
attic init -e keyfile -c 69 /tmp/attic-enc
# ... (same as before, but you need to give passphrase)
# connect to remote attic via ssh:
# remote attic needs to be compatible with local
attic init ssh://user@host:22/mnt/backup/attic
attic create ssh://user@host:22/mnt/backup/attic::first ~
# also possible: using sshfs or other locally mounted
# network filesystems, but be careful: locks, perf.
attic-backup.org (original)
github.com/attic/merge (unofficial)
#attic on chat.freenode.net
Just grab me, I am here all days at easterhegg!
Thomas J Waldmann @ twitter