introduzione
Il backup automatico è un sistema di backup automatizzato che recupera i dati per il backup da un server remoto e li memorizza sul server. Nel nostro caso, possiamo utilizzare un'istanza di archiviazione Vultr con enormi quantità di spazio su disco e fare il backup di tutte le nostre istanze di elaborazione per evitare la perdita di dati.
Requisiti
Installazione
Puoi installare AutoBackup usando git
facilmente sul tuo sistema. Vai avanti e clona il repository:
mkdir /opt/
git clone https://github.com/fbrandstetter/Autobackup.git /opt/autobackup/
Configurazione
Prima di poter iniziare il backup dei dati dalle nostre istanze di elaborazione, è necessario accedervi. Per questo, creeremo una chiave SSH sulla nostra istanza di archiviazione e garantiremo l'accesso da essa a tutte le istanze di calcolo. Successivamente, inizieremo con la creazione della chiave:
ssh-keygen
A partire da ora, dobbiamo copiare la nostra chiave pubblica nelle Istanze di calcolo. Aprire il seguente file ~/.ssh/id_rsa.pub
e copiarlo nelle istanze di calcolo ~/.ssh/authorized_keys
:
cat ~/.ssh/id_rsa.pub
Se non si lavora con le chiavi pubbliche per ottenere l'accesso alle proprie istanze di calcolo, è necessario prima impostare il file delle chiavi autorizzate nella configurazione del server SSH. Apri il seguente file /etc/ssh/sshd_config
sulle Istanze di calcolo e decommenta la seguente riga:
AuthorizedKeysFile %h/.ssh/authorized_keys
Connessione
Dopo aver aggiunto la chiave SSH dell'istanza di archiviazione su tutte le istanze di calcolo, puoi continuare a provare la connessione a una delle tue istanze di calcolo (per evitare problemi in seguito, assicurati che la connessione a tutti i server funzioni):
ssh root@COMPUTE_INSTANCE_1
Dovresti essere in grado di accedere senza digitare alcuna password né qualcos'altro.
Il backup automatico richiede anche alcune configurazioni per funzionare correttamente. Apri il /opt/autobackup/backup.sh
file, poiché ogni configurazione viene memorizzata nel file bash stesso. Dai un'occhiata alle seguenti linee e adattale in base alle tue esigenze:
BACKUPDIR=""
PASSWORD=""
FREEUPSPACE=""
MAXUSED=""
- BACKUPDIR: questa è la cartella in cui verranno archiviati tutti i backup.
- PASSWORD: questa è la password utilizzata per crittografare i backup.
- FREEUPSPACE: definisce se lo script deve eliminare i vecchi backup se il disco è pieno o meno.
- MAXUSED: definisce la dimensione minima del disco consentita fino a quando non interrompe il backup o inizia a eliminare quelli vecchi.
Aggiungi server
Tutti i server di cui eseguire il backup vengono archiviati nel /opt/autobackup/serverlist.template
file utilizzando il seguente formato:
<SERVER_HOSTNAME OR IP>|<USERNAME FOR AUTHENTICATION>|<EXCLUDE LIST>
Escluso globale
Per impostazione predefinita, Backup automatico esegue automaticamente il backup dell'intero server, il che significa che tenta di scaricare /
ricorsivo. Poiché alcune persone non necessitano del backup dell'intero sistema, è possibile aggiungere esclusioni globali (che si applicano a qualsiasi server) ed esclusioni specifiche per server, che si applicano a server specifici. Tutte le esclusioni globali vengono archiviate nel file chiamato /opt/autobackup/default-excludes.template
e il file è precompilato con /proc
e /dev
, è possibile aggiungere nuove cartelle ed estensioni di file semplicemente aggiungendo nuove righe:
/proc
/dev
Escludi specifici del server
Poiché la maggior parte delle persone esegue diversi tipi di server (ad esempio server Web e server di database), esistono elenchi di esclusione univoci per ciascun server. Il formato dei file di esclusione specifici del server è uguale a quelli globali. È possibile creare un nuovo file e chiamarlo come EXCLUDE_LIST
impostato per il server nell'elenco dei server. Se non si desidera specificare alcun elenco di esclusione per questo server, impostarlo empty
su Elenco server. Il file chiamato è empty
stato già scaricato dal clone del repository: questo file è vuoto per non avere directory o altro escluso, mentre le esclusioni predefinite hanno ancora effetto.
Ripristinare i dati
In un ambiente ideale, non dovremmo nemmeno ripristinare i nostri backup crittografati. Anche se quando affrontiamo problemi e dobbiamo recuperare i nostri dati di backup, è abbastanza facile ripristinarli. È possibile ripristinare qualsiasi file di backup utilizzando il seguente comando:
openssl aes-256-cbc -d -salt -in BACKUP.tar.aes -out BACKUP.restored.tar
mkdir backup/
tar -xvf BACKUP.restored.tar backup/
Sostituire BACKUP.tar.aes
con il nome file del backup desiderato da ripristinare. BACKUP.restored.tar
sarà il nome del file dell'archivio non crittografato. Nell'esempio sopra, abbiamo già fatto i passi successivi, che sono:
- Crea una nuova cartella
- Ripristina l'archivio non crittografato nella cartella
Conclusione
Autobackup è uno script di backup completamente automatizzato e abbastanza intelligente che gestisce automaticamente i backup per noi e l'enorme vantaggio è che i dati vengono crittografati da una password che può essere quasi illimitata a lungo. Ciò significa che, purché la password sia protetta e sia sufficientemente lunga, nessuno è in grado di toccare i dati in modo tempestivo. Happy Hacking!