Technical background for TISBackup

The deduplication of this solution is based on the hardlinks of ext3/4 file systems used for storing backup files.

The backup server must run rsync in server mode, and the workstations to be backed up must be equipped with rsync and ssh (usually basic on machines running GNU/Linux, with cygwin (or another tool like cwrsync) for machines running MS Windows).


tisbackup is a python script that the backup server runs at regular intervals. The configuration file tisbackup.ini contains the details of the tasks to be executed.

tisbackup has different options for its execution, available in the tisbackup --help command, the main ones being the following:

  • backup: executes all scheduled backups;

  • cleanup: examines the backups and deletes those that are older than the defined maximum retention time ;

  • checknagios: returns the content that can be viewed by nagios ;

  • retryfailed: redoes the backups that previously failed;

  • exportbackup: exports the last valid backups to the specified location (remote, external media, …);

  • register_existing: scans the backups that have been made and adds the missing ones to the database;


tisbackup.ini defines the backups to be executed and supervised. It is written with a simple formalism.

The different types of backups are:

  • rsync: the backup of a directory by rsync using the rsync protocol;

  • rsync+ssh: the backup of a directory by rsync with the ssh protocol;

  • mysql+ssh: saving a mysql database in a gzipped sql file, with the ssh protocol;

  • pgsql+ssh: the backup of a postgresql database in a gzipped sql file, with the ssh protocol;

  • xen-xva: the backup of a virtual machine running on an XCP server as an XVA file;

  • xen-meta-data: the backup of XCP metadata from a virtualization server;

  • switch: the backup of switches;

  • null: null backup of a server that does not require a backup but for which it is known to be taken into account (Nagios supervision);

The first part of the tisbackup.ini file, starting with the [Global] tag, determines:

  • the path to the folder where the backups will be stored;

  • the maximum retention time of a backup (in days);

  • the maximum delay before triggering a nagios critical message (in hours);

  • possibly the limit of usable bandwidth;

The rest of the file lists the different backups to be made, with specific parameters for each type of backup:

  • name of the directory in the backup;

  • backup type;

  • server name;

  • directory (in case of a directory backup);

  • directories to be excluded (idem);

  • location of the ssh key to be used (private key on the backup server);

  • name of the database (in case of mysql or postgresql database backup);

  • ssh port number to use;

  • database user and password (in case of mysql or postgresql database backup);


tisbackup.sql is the sqlite database available on the backup server, in which the backup information of each of the backed up areas is stored. It is used in particular to gather the information necessary for Nagios.

TISbackup GUI

Also developed in python, TISbackup GUI is a graphical interface that allows you to:

  • visualize the last backups;

  • export a backup to a USB media;

  • visualize the backups to be made;

Clapping hands You may now go on to the next step and install TISBackup on your Debian.