MasterpieceDockerCompose/borg
miracle091 e91e26c7d8
Aggiunta un bagde per capire se un immagine è compatibile con i raspberry
Divisione nella lista principale tra immagini compatibili con i raspberry e non
2021-11-25 10:54:46 +01:00
..
README.md Aggiunta un bagde per capire se un immagine è compatibile con i raspberry 2021-11-25 10:54:46 +01:00
borg_backup.sh Aggiunto config.yml per homer e borg_backup.sh per borg 2021-06-06 11:33:31 +02:00

README.md

Borg Backup

Utilizzo

Sito ufficiale Sorgente Demo RPI Friendly

Borg Backup è un software per effettuare backup da terminale (e non solo):

  • Deduplicazione dei file invece del classico "copia/incolla"
  • Crittografia con AES 256-bit e verifica dei dati tramite HMAC-SHA256
  • Offuscazione dei dati, in modo da rendere i backup più "sicuri"
  • Compressione dei dati usando gli algoritmi più conosciuti (LZ4, zlib, LZMA, zstd)
  • Personalizzazione il numero di backup da mantenere (giornalieri, settimanali, mensili, annuali)
  • Ottimo supporto della comnunità

Struttura file e cartelle

/home/
 ├── borg/
 │    ├── docker_backup/
 │    ├── borg_backup.sh
 │    └── borg_backup.log
 │
 └── docker/
     ├── container #1
     ├── container #2
     ├── ...
  • docker_backup - cartella dove vengono salvati i backup da borg
  • borg_backup.sh - bash script per effettuare i backup
  • borg_backup.log - file di log con le date dei backup

N.B. Tutti i file e le cartelle devono essere creati a mano

Setup

Installare Borg Backup

È già presente in molte distro linux/unix, nel caso non lo sia si può installare direttamente il binary

Creare e inizializzare una nuova cartella per i backup

  1. mkdir /home/borg
  2. borg init --encryption=none /home/borg/docker_backup

N.B. In caso di problemi con i permessi di scrittura/lettura usate sudo o l'equivalente per la vostra distro

Bash script

Lo script deve avere la flag executable (eseguibile), nel caso non sia presente lanciate il comando chmod +x borg_backup.sh

borg_backup.sh

#!/bin/bash

# LO SCRIPT MANTIENE IL SEGUENTE NUMERO DI BACKUP:
# GIORNALIERI = 7 aka 1 settimana
# SETTIMANALI = 4 aka 1 mese
# MENSILI = 6 aka 6 mesi
# ANNUALI = 0

# -----------------------------------------------

DIRECTORIES='/home/docker'
BACKUP='/home/borg/docker_backup'
LOGFILE='/home/borg/borg_backup.log'

NOW=$(date +"%Y-%m-%d | %H:%M | ")
echo "$NOW - Avvio del Backup e della Pulizia" >> $LOGFILE

# CREA NUOVI BACKUP NELLA CARTELLA IMPOSTATA
borg create                                     \
    $BACKUP::'{now:%s}'                         \
    $DIRECTORIES                                \
                                                \
    --compression zstd                          \
    --one-file-system                           \
    --exclude-caches                            \
    --exclude-if-present '.nobackup'            \

# CANCELLA I VECCHI BACKUP, SE NECESSARIO
borg prune -v --list $BACKUP                    \
    --keep-daily=7                              \
    --keep-weekly=4                             \
    --keep-monthly=6                            \
    --keep-yearly=0                             \

echo "$NOW Done" >> $LOGFILE
echo '------------------------------' >> $LOGFILE

Avvio manuale

  1. lanciate il seguente comando sh ./borg_backup.sh
  2. alla domanda: Attempting to access a previously unknown unencrypted repository
  3. rispondete con yes

Avvio automatizzato

Il metodo migliore è usare cron, che sicuramente è già pre-installato nella vostra distro linux.

Create un cronjob che faccia partire lo script alle 03:00 di notte:

  1. lanciate il seguente comando crontab -e
  2. poi scrivere quanto segue 0 3 * * * /home/borg/borg_backup.sh

Comandi utili:

  • systemctl status cron - controlla se il servizio è attivo e/o installato
  • crontab -l - lista degli attuali cronjob
  • journalctl -u cron - cronologia di cron

Controllare la cartella dei backup

  1. entrare nella cartella dei backup cd /home/borg/docker_backup/
  2. scrivere borg list . per ottenere la lista dei backup effettuati
  3. scegliere il backup che vi interessa usando una data epoch, esempio 1588986941
  4. montare il backup su una cartella temporanea borg mount .::1588986941 /mnt/temp
  5. controllare il contenuto della cartella e fate quello necessario
  6. smontare la cartella temporanea del backup borg umount /mnt/temp

N.B. Di tanto in tanto, controllate i backup effettuati per evitare brutte sorprese!!!


Licenza: CC BY-SA 4.0