Pour sauvegarder des données sous Linux, il existe restic en tant que logiciel de backups.
Restic peut sauvegarder des données sur différent backends :
- Buckets S3 (minio, scaleway, AWS, etc...)
- SFTP
- Local
- Etc...
Et si vous souhaitez plus de backends (Nextcloud, Dropbox, OVH, etc...), il est possible de coupler restic avec Rclone.
Installation
Pour installer restic sous Debian ou Ubuntu :
apt update && apt install -y restic
Sur Arch Linux :
sudo pacman -S restic
Ou manuellement :
export RESTIC_VERSION=0.16.4wget https://github.com/restic/restic/releases/download/v$RESTIC_VERSION/restic_${RESTIC_VERSION}_linux_amd64.bz2bzip2 -d restic_${RESTIC_VERSION}_linux_amd64.bz2mv restic_${RESTIC_VERSION}_linux_amd64 /bin/resticchmod +x /bin/restic
Lancer une sauvegarde vers un bucket S3
Voici un exemple avec une sauvegarde du dossier ~/
vers un bucket S3 de chez Scaleway :
# ~/.aws/credentials[default]aws_access_key_id = <AWS_ACCESS_KEY_ID>aws_secret_access_key = <AWS_SECRET_ACCESS_KEY>
restic -r s3:s3.fr-par.scw.cloud/<bucket_name> init
restic -r s3:s3.fr-par.scw.cloud/<bucket_name> backup ~/
Il est possible de facilement automatiser la sauvegarde via une tâche cron :
# Sauvegarde du dossier ~/ chaque jour à minuit0 0 * * * RESTIC_PASSWORD=<PASSWORD> restic -r s3:s3.fr-par.scw.cloud/<bucket_name> backup ~/
Consulter les sauvegardes
restic -r <remote> snapshots
Restaurer une sauvegarde
restic -r <remote> restore <id> --target <folder>
Restaurer un fichier spécifique
restic -r <remote> restore <id> --include <file_path> --target <folder>
Monter une sauvegarde
Pour monter une sauvegarde restic sur un dossier :
restic -r <remote> mount <folder>
Libérer de l'espace
Pour libérer de l'espace :
restic -r <remote> forget --keep-within 30drestic -r <remote> prune
Mettre à jour restic
Pour mettre à jour restic :
restic self-update
Débloquer l'accès
Si pour une raison ou une autre votre accès est bloqué, exécuter la commande suivante :
kill <pid>restic -r <remote> unlock
Mettre à jour le mot de passe d'un repository
restic -r <remote> key listrestic -r <remote> key add
Créer une sauvegarde automatique quotidienne
Créer un service dans le fichier /etc/systemd/system/restic.service
:
[Unit]Description=Restic BackupWants=network-online.targetAfter=network-online.target[Service]Type=oneshotUser=myuserGroup=myuserExecStart=restic -q backup ${HOME}# ExecStartPost=curl -sL https://webhook.example.comEnvironment=RESTIC_REPOSITORY=s3:s3.eu-central-003.backblazeb2.com/mybucketEnvironment=RESTIC_PASSWORD=myp@ssw0rdEnvironment=HOME=/home/myuserRestart=on-failureRestartSec=30
Créer un timer dans le fichier /etc/systemd/system/restic.timer
:
[Unit]Description=Daily Restic Backup Timer[Timer]Persistent=trueOnCalendar=dailyRandomizedDelaySec=300[Install]WantedBy=timers.target
Activez le timer :
sudo systemctl daemon-reloadsudo systemctl enable --now restic.timer