====== restic ======
===== Documentation =====
restic permet de faire des backup sous forme de snapshots de **fichier local** uniquement (ou montage nfs, sshfs etc...) vers un chemin local ou à distance via sftp et plein d'autre storage cloud.
* Doc officiel -> https://restic.readthedocs.io/en/latest/010_introduction.html
* Interface Web -> https://github.com/garethgeorge/backrest
* Doc de backrest -> https://garethgeorge.github.io/backrest/introduction/getting-started
===== Installation =====
apt install restic
restic self-update
===== Backup en local =====
Pour éviter de taper le chemin du dépôt et le mot de passe, on va les mettre en variable d'environnement
export RESTIC_REPOSITORY="/backup"
export RESTIC_PASSWORD="motdepasse"
Initier le dépôt
restic init
Faire un backup
restic backup /etc /var/www /home
Vérifier les snapshots
restic snapshots
Dans le crontab
0 3 * * * RESTIC_REPOSITORY="sftp:user@backupserver:/data/restic" RESTIC_PASSWORD="VotreMotDePasse" /usr/bin/restic backup /etc /var/www /home >> /var/log/restic-backup.log 2>&1
On peut rajouter cette ligne pour faire le ménage
0 4 * * * RESTIC_REPOSITORY="sftp:user@backupserver:/data/restic" RESTIC_PASSWORD="VotreMotDePasse" /usr/bin/restic forget --keep-daily 7 --keep-weekly 4 --keep-monthly 6 --prune
--- https://www.shpv.fr/blog/restic-sauvegarde/
===== ZeroByte =====
WebApp pour restic
Installation sur LXC -> https://community-scripts.org/scripts/zerobyte
Faire un montage pour les dépôts
pct set 100 -mp0 /media/nas/restic-repo,mp=/var/lib/zerobyte/repositories
Ne pas oublier les droits
chown 100000:100000 /media/nas/restic-repo
Pour que le montage des volumes se fasse, mettre l'option Container / Options / Features / FUSE
Attention lors du backup, il peut y avoir ce genre de problème
ERROR: rsync: [sender] readlink_stat("/proc/976153/root/var/lib/zerobyte/volumes/QQZ5W9aQ/_data") failed: Permission denied (13)
ERROR: rsync: [sender] readlink_stat("/proc/976153/root/var/lib/zerobyte/volumes/QzwNHc82/_data") failed: Permission denied (13)
ERROR: rsync: [sender] readlink_stat("/proc/976153/root/var/lib/zerobyte/volumes/fTn6r-lO/_data") failed: Permission denied (13)
ERROR: rsync: [sender] readlink_stat("/proc/976153/root/var/lib/zerobyte/volumes/s64x8ikT/_data") failed: Permission denied (13)
La solution est d'exclure le dossier ''/var/lib/zerobyte/volumes''
* Soit en créant un job de backup uniquement pour ce container et d'ajouter un ''exclude-path'' (recommandé)
vi /etc/pve/jobs.cfg
vzdump: backup-b3ea23cc-eca0
schedule 21:00
enabled 1
fleecing 0
mode snapshot
notes-template {{guestname}}
notification-mode notification-system
repeat-missed 0
storage datastoreHome
vmid 105
exclude-path /var/lib/zerobyte/volumes
Important ensuite de reload les services qui vont bien
systemctl reload-or-restart pvescheduler.service pveproxy.service pvedaemon.service
Attention, si vous modifiez le backup dans l'interface web, il faudra recommencer l'opération.
* Soit, si vous faite vos backup via ''proxmox-backup-client'', ajouter un fichier ''.pxarexclude'' à la racine
vi /.pxarexclude
/var/lib/zerobyte/volumes/**