====== Généralités ======
Grifon réalise des sauvegardes quotidiennes des données et configurations de ses VM avec l'outil [[https://borgbackup.readthedocs.io/en/stable/#|Borg Backup]]. La destination des sauvegardes est une VM qui se trouve sur un site distant : [[machines:grifon:loth|Loth]] ou [[machines:grifon:backup02|backup02]].
Voici maintenant un exemple de mise en place de la sauvegarde automatique quotidienne pour une VM.
====== Initialisation ======
auth02 ~ # ssh-keygen -t ed25519
auth02 ~ # cat ~/.ssh/id_ed25519.pub
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPB/PjCM4qSJ6Yt7zzP0XuHTvlWlpHbF0qw/oDPf638j root@auth02.grif
loth ~ # echo 'ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPB/PjCM4qSJ6Yt7zzP0XuHTvlWlpHbF0qw/oDPf638j root@auth02.grif' >> /home/backup/.ssh/authorized_keys
loth ~ # ln -s /var/backups/grifon/auth02 /home/backup
auth02 ~ # emerge -va borgbackup
auth02 ~ # borg init -e=none backup@loth.grifon.fr:$(hostname -s )
====== Script de backup ======
Script à mettre dans /usr/local/sbin/backup.sh :
#!/usr/bin/env bash
borg prune -v backup@backup02.grifon.fr:$(hostname -s) --keep-daily=7 --keep-weekly=4 --keep-monthly=1
borg compact backup@backup02.grifon.fr:$(hostname -s)
borg create --info --stats --compression lzma backup@backup02.grifon.fr:$(hostname -s)::$(date +%F) $(find / -maxdepth 1 -type d | grep -Ev '^/$|^/tmp|^/lost\+found|^/mnt|^/run|^/proc|^/dev|^/sys|^/media' | tr '\n' ' ')
puis :
chmod +x /usr/local/sbin/backup.sh
et enfin un fichier de cron :
echo "51 0 * * * root /usr/local/sbin/backup.sh" > /etc/cron.d/backup