Logiciel de backup
  • Go 98.6%
  • Makefile 1.4%
Find a file
2026-06-14 14:38:18 +02:00
archive Commit initial 2026-05-31 12:20:39 +02:00
cmd Commit initial 2026-05-31 12:20:39 +02:00
configuration Tri des paquets pour rendre l’ordre par défaut prévisible 2026-06-14 14:38:18 +02:00
flags Commit initial 2026-05-31 12:20:39 +02:00
internal Commit initial 2026-05-31 12:20:39 +02:00
log Commit initial 2026-05-31 12:20:39 +02:00
resources Commit initial 2026-05-31 12:20:39 +02:00
.gitignore Commit initial 2026-05-31 12:20:39 +02:00
backup.go Commit initial 2026-05-31 12:20:39 +02:00
go.mod Commit initial 2026-05-31 12:20:39 +02:00
go.sum Commit initial 2026-05-31 12:20:39 +02:00
init.go Commit initial 2026-05-31 12:20:39 +02:00
Makefile Commit initial 2026-05-31 12:20:39 +02:00
manage.go Commit initial 2026-05-31 12:20:39 +02:00
README.md Commit initial 2026-05-31 12:20:39 +02:00

backupcs

Programme de sauvegarde en mode client ou serveur.

Dépendances

Dépendances requises:

  • Un système Linux
  • go
  • git
  • Les outils basiques de compression/darchivage: tar, gzip, bzip2, zstd, zip

Dépendances optionnelles:

  • pigz (compression gzip parallélisée)
  • lbzip2 (compression bzip2 parrallélisée)
  • lz4

Installation

  1. Récupérer le dépôt:
> git clone https://git.kaosx.ovh/benjamin/backupcs.git
> cd backupcs
  1. Compiler le paquet:
> make build

Vous pouvez également passer des options pour spécifier le répertoire de configuration (/etc/backupcs par défaut) et le fichier de log (/var/log/backupcs/backupcs.log):

> CONFIG_DIR=/etc/bbcs LOG_FILE=/var/log/bbcs.log make build
  1. Installer le paquet:
# make install # ou INSTALL_DIR=/usr/sbin make install si vous ne voulez pas utilisez le répertoire par défaut (/usr/local/sbin)

Utilisation

backupcs doit impérativement être lancé en root. backupcs peut se lancer selon deux modes :

  • Mode client: la machine qui lance backupcs sauvegarde des fichiers présent sur cette même machine
  • Mode serveur: la machine qui lance backupcs sauvegarde des fichiers issus de serveurs distants.

Pour toute action, il faut préciser dans quel mode lapplication doit se lancer: client (-c) ou serveur (-s).

Pour lutilisation plus détaillée, lancez la commande backupcs --help.

Configuration

Pour initialiser la configuration, lancez backupcs -cI (ou -sI en mode serveur). Ceci créera la structure de base de la configuration dans /etc/backupcs (ou le répertoire spécifié dans CONFIG_DIR si vous lavez personnalisé lors de la compilation). Le répertoire de configuration a la structure suivante:

/etc/backupcs/
            |_ client/ # Si lancé avec -c (sinon, server)
                    |_ global.yml # Fichier de configuration globale qui sapplique à toutes les sauvegardes
                    |_ template.yml # template dexemple de vhost
                    |_ available/ # Liste des vhosts disponibles
                    |_ enabled/   # Liste des vhosts activés

Un vhost est un ensemble de procédures indiquant les paquets à sauvegarder. Chaque paquet définit un type de sauvegarde (fichier ou base de données), les données à inclure et les données à exclure.

Les paramètres globaux sapplique à chaque vhost, sauf si le vhost définit des paramètres spécifiques.

Pour activer/désactiver un vhost:

backupcs -cE <vhost_name>.yml
backupcs -cD <vhost_name>.yml

La sauvegarde se lance de la façon suivante:

backupcs -c -d [<paquets ou vhosts>...] # ou -w ou -m à la place de -d

Si aucun paquet ou vhost nest précisé, tout les paquets sont sauvegardés.

Un paquet doit sécrire sous la forme vhost/packet. Si juste le vhost est précisé, tous les paquets du vhost sont sauvegardés.

Le dossier de sauvegarde (précisé dans la variable backupdir du fichier de configuration globale) a la structure suivante:

vhost1/
     |_ daily.d/ # si lancé avec -d, weekly.d/ si -w, monthly.d/ si -m
              |_ vhost1_packet1_<YYYYMMDD>_<HHMM>.<archive_extension>
              |_ vhost1_packet2_<YYYYMMDD>_<HHMM>.<archive_extension>
              |_ vhost1_packet1_<YYYYMMDD>_<HHMM>.diff.<archive_extension>
              |_ ...

Nota: les sauvegardes journalières peuvent être différentielles (si la variable diff est définie à true dans la configuration et que le paquet à sauvegarder est de type file). Pour distinguer une sauvegarde différentielle dune sauvegarde complète, un .diff est ajouté avant lextension du fichier de sauvegarde.

Le choix entre sauvegarde complète ou différentielle lors de la sauvegarde est automatique, suivant les paramètres de rotation définis dans la configuration.