Managing SSH chroots to backup a lot of machines
Go to file
2014-03-27 11:55:17 +01:00
chroot-etc Revert "Don't use Privilege separation in sshd chroot." 2014-03-19 11:54:41 +01:00
crons Change an hard coded path for logging times. 2014-03-19 11:54:41 +01:00
install/etc Typo in filename in actions.d. 10_mysq.disabled -> 10_mysql.disabled 2014-03-19 11:54:41 +01:00
AUTHORS Refactoring of the code. 2014-03-19 11:54:39 +01:00
chroot-bincopy.sh Added a check of release to use the good path for libnss. 2014-03-19 11:54:41 +01:00
chroot-new.sh Added install/etc/evobackup/conf.d/incs 2014-03-19 11:54:40 +01:00
chroot-update.sh All shebangs set to /bin/bash. 2014-03-19 11:54:41 +01:00
INSTALL.md Added steps to INSTALL.md 2014-03-19 11:54:41 +01:00
install.sh All shebangs set to /bin/bash. 2014-03-19 11:54:41 +01:00
LICENSE Initial commit 2014-03-19 11:53:52 +01:00
README.md Revert "test" 2014-03-27 11:55:17 +01:00

EvoBackup

EvoBackup is a bunch of shell scripts to create a backup server which will handle the backup of many servers (clients). Licence is GPLv2.

The main principle uses SSH chroot (called "jails" in the FreeBSD world) for each client to backup. Each client will upload his data every day using rsync in his chroot (using root account). Incrementals are stored outside of the chroot using hard links. (So incrementals are not available for clients). Using this method we can keep tens of backup of each client securely and not using too much space.

                                    Backup server
                                    ************
Server 1 ------ SSH/rsync ------->  * tcp/2222 *
                                    *          *
Server 2 ------ SSH/rsync ------->  * tcp/2223 *
                                    ************

This method uses standard tools (ssh, rsync, cp -al). EvoBackup is used for many years by Evolix for back up each day hundreds of servers which uses many terabytes of data.

Backup server

The backup server need to be based on Debian. Tested on Debian Wheezy and Ubuntu 13.04.

Needed packages:

  • openssh-server
  • rsync
  • bsd-mailx (or other package providing /usr/bin/mailx)

Backups are stored in a big partition mounted on /backup (you can change this). For security reasons it is recommended to encrypt the backup partition (i.e using LUKS).

Main directories:

  • /backup/jails: chroot used by clients
  • /backup/incs: incrementals
  • /etc/evobackup: Config dir

To install and configure EvoBackup read INSTALL.md