-== List the machines to backup ==
+Wizbackup is a minimalistic backup system based on rsync and hardlinked
+snapshots.
+Its main feature is that each backup snapshot is a plain filesystem tree, identical to the
+original. Theere's no need for a tool to restore and manage backups.
+
+There are a few downsides to this simple structure:
+ - Backups are uncompressed (unless the underlying filesystem supports transparent complression)
+ - Large files which change every day, such as logs and databases, are duplicated in each snapshot,
+ wasting space. Reflinks (aka COW-links) would solve this.
+
+
+Setup
+=====
+
+List the hosts to be backed up:
+
+```
mkdir -p /backup/HOSTS
cat >/backup/HOSTS/example <<__EOF__
host1.example.com
host2.example.com
__EOF__
+```
+Optionally, specify paths to be excluded from backups:
-== Optionally, exclude files from backups ==
-
+```
mkdir -p /backup/EXCLUDE
cat >/backup/EXCLUDE/ALWAYS <<__EOF__
/dev/
/sys/
/selinux/
__EOF__
+```
+
+You can also specify host-specific excludes:
+```
cat >/backup/EXCLUDE/host1.example.com <<__EOF__
/var/cache
__EOF__
+```
+Install the wizbackup cronjob:
-== Install wizbackup cronjob ==
-
+```
cat >/etc/cron.daily/wizbackup <<__EOF__
#!/bin/bash
wizbackup-driver /backup/HOSTS/example /backup
__EOF__
+```
+Create an ssh keypair for each host:
-== Create an ssh keypair for the hosts ==
-
+```
mkdir -p /etc/wizbackup
ssh-keygen -N '' -c "wizbackup@example.com" -f /etc/wizbackup/ssh_id
ssh-copy-id -f /etc/wizbackup/ssh_id.pub root@host1.example.com
ssh-copy-id -f /etc/wizbackup/ssh_id.pub root@host2.example.com
+```
+
+That's it!