Grifon réalise des sauvegardes quotidiennes des données et configurations de ses VM avec l'outil Borg Backup. La destination des sauvegardes est une VM qui se trouve sur un site distant : Loth ou backup02.
Voici maintenant un exemple de mise en place de la sauvegarde automatique quotidienne pour une VM.
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 à 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