====== Restic ====== ===== Restic en quelques exemples ===== * Pour initialiser un repository sur un serveur rest restic -r rest:https://user:pwd@server:8000/user init * Pour sauver un backup sur un serveur rest restic -r rest:https://user:pwd@server:8000/user backup --limit-upload=1500 -p password.txt /source Attention, le :8000/**user** doit correspondre au login de la connexion **user**:pwd * Faire une sauvegarde mysql mysqldump --defaults-file=~/.my.cnf dolibarr -h localhost -u vince -P 3306 -l --single-transaction -K --add-drop-table=TRUE --tables -c -e --hex-blob --default-character-set=utf8 | restic -r rest:https://user:pwdmail2.makeitsimple.be:8000/vincent/ backup --stdin --stdin-filename dolibarr.sql * Purger restic -r /mnt/backup/restic/vincent/ forget --keep-daily 15 --keep-weekly 3 --keep-monthly 6 --keep-yearly 6 --prune ===== Restic en quelques paramètres ===== ^ Paramètre ^ Explication ^ | --limit-upload=1500 | Limite la transmission à une vitesse de 1500kbps | | --stdin --stdin-filename osticket.sql | Utilisé lorsqu'on sauvegarde le résultat d'une commande envoyé dans la console (ex mysqldump | | Row 3 Col 1 | Row 3 Col 2 | ===== Rest-server ===== - Mettre à jour les dépots APT apt update - Installer go make & git apt-get install golang-go git make apache2-utils -y - Télécharger le dépot du rest-server git clone https://github.com/restic/rest-server - Télécharger les dépendances go get github.com/restic/rest-server go get github.com/spf13/cobra go get github.com/prometheus/client_golang/prometheus go get github.com/gorilla/handlers go get goji.io/middleware go get golang.org/x/crypto/bcrypt - Entrer dans le dossier, compiler et déployer l'installationcd rest-server/ CGO_ENABLED=0 go build -o rest-server ./cmd/rest-server cp rest-server /usr/bin - Adapter les droits du dossier de destinationmkdir -p /mnt/backup/restic touch /mnt/backup/restic/.htpasswd chown -R www-data:www-data /mnt/backup/restic - Editer le fichier systemctl rest-server nano examples/systemd/rest-server.service Et modifier ExecStart=/usr/bin/rest-server --path **/mnt/backup/restic --private-repos --append-only** ainsi que ReadWritePaths=/mnt/backup/restic - Copier le fichier de démarrage systemctl cp examples/systemd/rest-server.service /etc/systemd/system/ - Générer un utilisateur htpasswd -B /mnt/backup/restic/.htpasswd **utilisateur** - Activer et lancer le service rest-server systemctl enable rest-server systemctl start rest-server systemctl status rest-server ===== Sources ===== * https://www.kloppenborg.net/blog/2019/06/12/restic-backup-server * https://restic.readthedocs.io/en/latest/060_forget.html#removing-snapshots-according-to-a-policy * https://golb.hplar.ch/2020/04/backup-restic.html * https://www.hostwinds.com/guide/creating-mysql-backups-restic/ * https://catlife.drycat.fr/~/XataZ/restic-rempla%C3%A7ant-de-borg-et-duplicati