Affa Logo

 Affa Backup Server

Copyright (C) 2004-2012 by Michael Weinberger


The main purpose of this affa package is to turn linux server into a dedicated backup server in less than an hour. Affa backs up systems which have sshd running and rsync installed. Once it is configured, Affa runs reliably unattended and sends warning messages in case of any errors.

All backup archives are full backups, as Affa make use of the hardlink technique. Therefore a new full backup only needs disk space for the differences plus the filesystem overhead for the hardlinks and directories (which is typically 2-3%). The optional file deduplication saves additional disk space.

Affa is based on the rsync program and supports the rsync --compress option. This allows you to run backups over the internet or VPN. A typical setup is one or more Affa backup servers placed in different locations, which backup the production server(s) over the VPN.

Affa is a command line tool for system administrators and is intentionally designed without a GUI. Therefore it can be efficiently managed on the console and over slow internet connections.


Installation instructions, manual and sample configurations can be found here.

Affa features at a glance

  • Affa is secure: Data is pulled from the sources using rsync over ssh with public/private key authentication
  • Periodically runs unattended full backups. Only differences to the previous full backup are transferred over the network
  • Using rsync with optional bandwidth limit and compression allows backups over the internet
  • Uses hardlinks to save physical disk space
  • Keeps a configurable number of scheduled, daily, weekly, monthly and yearly full backup archives
  • Optional file deduplication
  • The archives are browseable. No need to unpack them first.
  • Archives can be mapped to a Samba share.
  • Backup jobs are started by the cron daemon
  • Interrupted jobs continuing with already transfered data when restarted
  • Directories and files can be excluded from the backup
  • Configurable nice level for rsync processes on the backup server and remote server(s)
  • Optional run of custom programs before and after a job run (e.g. dumping a database)
  • Checks the disk space left after a job run with warning levels strict, normal or risky
  • Extensive checking of failure conditions
  • Sends failure messages to a configurable list of email addresses
  • Sends a warning message, if the backup server runs out of disk space
  • Built-in NPRE support with auto-configuration for ICINGA and Nagios
  • Option to display current status of all jobs showing times of last and next run, size and disk usage
  • Status can be mailed on a daily, weekly or monthly schedule
  • Option to display all existing archives of a job shown date, number of files, size and bytes tranferred from the source
  • Configurable via plain text config files with one record for each job and a default record for all jobs
  • Configration can be spread over multiple files
  • Logs to /var/log/affa/JOB.log with optional debug switch for higher verbosity
  • All log files are rotated weekly, with 5 logs kept


Affa is available as an RPM package or tarball.

Discussion and Help


Affa is distributed under the GNU General Public License.

Affa Backup Server, Download bei heise
Author's 16 x 1 TB iSCSI FreeNAS Storage used with Affa
Affa Config File
Author's 8 x 1 TB iSCSI QNAP-809-Pro Storage used with Affa
Author's 1 TB NFS QNAP-109-Pro Storage used with Affa