- Go 98.6%
- Makefile 1.4%
| archive | ||
| cmd | ||
| configuration | ||
| flags | ||
| internal | ||
| log | ||
| resources | ||
| .gitignore | ||
| backup.go | ||
| go.mod | ||
| go.sum | ||
| init.go | ||
| Makefile | ||
| manage.go | ||
| README.md | ||
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/d’archivage : tar, gzip, bzip2, zstd, zip
Dépendances optionnelles :
- pigz (compression gzip parallélisée)
- lbzip2 (compression bzip2 parrallélisée)
- lz4
Installation
- Récupérer le dépôt :
> git clone https://git.kaosx.ovh/benjamin/backupcs.git
> cd backupcs
- 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
- 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 l’application doit se lancer : client (-c) ou serveur (-s).
Pour l’utilisation 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 l’avez 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 s’applique à toutes les sauvegardes
|_ template.yml # template d’exemple 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 s’applique à 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 n’est 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 d’une sauvegarde complète, un .diff est ajouté avant l’extension 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.