Restic (http://restic.net et https://github.com/restic/restic) est un outil de sauvegarde rapide, efficace et proposant de nombreux types de stockage (13 dont local, sftp, S3, rest-server, Minio, Openstack swift, Google, Lirosoft Azure ) . Il est écrit en langage go.
L’objectif est ici de sauvegarder une machine (srv - Debian Bullseye) sur une machine de sauvegarde (bu - Debian Bullseye).
On utilisera le stockage rest-server (https://github.com/restic/rest-server) développé par restic pour ses performances et sa simplicité.
Sur cette machine, on doit installer restic ,
apt install restic
wget https://github.com/restic/restic/releases/download/v0.13.1/restic_0.13.1_linux_amd64.bz2 bunzip2 restic_0.13.1_linux_amd64.bz2 mv restic_0.13.1_linux_amd64 restic chmod +x restic mv restic /usr/local/bin restic version
On récupère le binaire depuis github
wget https://github.com/restic/rest-server/releases/download/v0.11.0/rest-server_0.11.0_linux_amd64.tar.gz tar xvfz rest-server_0.11.0_linux_amd64.tar.gz cp rest-server_0.11.0_linux_amd64/rest-server /usr/local/bin chmod +x /usr/local/bin/rest-server rest-server version
Kaya (https://github.com/leaf-node/kaya) est un wrapper bash permettant de lancer une sauvegarde restic en mode pull depuis le serveur de sauvegarde au moyen d'un tunnel SSH.
On clone le dépôt kaya depuis github
apt install pwgen flock apache2-utils # les prerequis git clone https://github.com/leaf-node/kaya.git cp kaya /usr/local/bin/ scp kaya-client root@srv:/usr/local/bin/ # on copie kaya-client sur le serveur srv cp kaya.conf /etc/ chown root:root /etc/kaya.conf vim /etc/kaya.conf # on pourra adapter le backup_root et les ports réseau pour les adapter aux conditions locales mkdir -p /srv/backups/kaya/ # le backup_root touch /srv/backups/kaya/.htpasswd
La machine srv doit disposer de restic et de kaya-client (cf plus haut)
Sur cette machine, on doit installer restic ,
apt install restic
wget https://github.com/restic/restic/releases/download/v0.13.1/restic_0.13.1_linux_amd64.bz2 bunzip2 restic_0.13.1_linux_amd64.bz2 mv restic_0.13.1_linux_amd64 restic chmod +x restic mv restic /usr/local/bin restic version
La machine srv doit être accessible via SSH depuis bu au moyen d’une clé publique préalablement distribuée
Par défaut, rest-server écoute sur le port TCP/8000, si celui-ci est déjà utilisé, il faudra spécifier un autre port avec l'option supplémentaire –listen :9000
pour écouter sur le port 9000.
Le fichier kaya.conf devra au besoin être adapté en conséquence.
rest-server --path /srv/backups/kaya/ --append-only --private-repos
d'autre options sont disponibles avec rest-server –help
Pour sauvegarder le répertoire /var/www/html de la machine srv :
kaya srv backup -- /var/www/html
d'autre options sont disponibles avec restic –help
Tout ce qui suit le —-
est considéré comme des options et paramètres de restic
mkdir ~/mount/ cd /srv/backups/kaya/srv/ restic -p repo-password-keep -r . mount ~/mount/
Terminer avec <Ctrl-C> ou lancer fusermount -u ~/mount/
dans une autre fenêtre
cd /srv/backups/kaya/srv/ restic -p repo-password-keep -r . snapshot repository e912e32a opened successfully, password is correct ID Time Host Tags Paths ------------------------------------------------------------------------------------------ 0c3fc80a 2022-04-17 22:19:40 vpsxyztuv /home/xyzadm/docker/siost/traefik 0ce4ba5c 2022-04-17 22:20:02 vpsxyztuv /home/xyzadm/docker/siost/traefik 0041438c 2022-04-17 22:20:17 vpsxyztuv /home/xyzadm/docker/siost/shaarli 9c7b8a2e 2022-04-17 22:20:29 vpsxyztuv /home/xyzadm/docker/siost/shaarli 998c4d05 2022-04-17 22:30:52 vpsxyztuv /home/xyzadm/docker/siost/gitea ------------------------------------------------------------------------------------------
cd /srv/backups/kaya/srv/ restic -r . -p repo-password-keep stats repository e912e32a opened successfully, password is correct scanning... Stats in restore-size mode: Snapshots processed: 5 Total File Count: 24823 Total Size: 1.012 GiB