restic è una delle svariate utility per organizzare il backup del proprio sistema, tra le caratteristiche abbiamo:
- multipiattaforma (Linux, MacOS, Windows, alcuni *BSD)
- supporto per diversi backend storage (locale, S3, SFTP, HTTP REST, ETC)
- facile da usare via CLI
- deduplicazione dei dati (gli stessi file non vengono salvati più volte)
- con ottima documentazione
- possibilità di usare webUI (es backrest)
- diverse automazioni per ansible già pronte (es ansible-restic)
Per l’installazione basta:
apt install resticA questo punto si può iniziare ad utilizzarlo. Consiglio di inserire alcune variabili di environment nel file ~/.restic da importare poi nel file .bashrc in modo da “leggerle” all’accesso oppure direttamente in /etc/environment. Nel mio caso voglio usare come backend uno storage S3 compatibile ed ho inserito nel file ~/.restic:
export RESTIC_PASSWORD=<PASSWORD>
export RESTIC_REPOSITORY=s3:https://<S3_HOST_ENDPOINT>/<BUCKET>
export AWS_SECRET_ACCESS_KEY=<SECRET-KEY>
export AWS_ACCESS_KEY_ID=<ACCESS-KEY>Inizializziamo il repository di backup:
restic inite così verifichiamo anche che le poche configurazioni siano state correttamente recepite.
A questo punto possiamo iniziare ad eseguire i nostri backup. Probabilmente la cosa più comoda è creare uno script in cui inserire i vari comandi e poi eseguirlo tramite cron. In effetti i comandi sono semplici e si potrebbe fare tutto a mano, ma posso consigliarvi uno script che semplifica una serie di procedure, lo potete scaricare da questo link.
Salvate lo script nella cartella che preferite, cambiate i permessi a 0700 per poi passare a personalizzare i parametri; si tratta delle prime righe, in particolare:
RESTIC_PASSWORD=
S3_BUCKET=
S3_ENDPOINT=
S3_ACCESS_KEY_ID=
S3_SECRET_ACCESS_KEY=
BACKUP_FREQUENCY=e poi altre che possiamo anche lasciare come default:
RETENTION_DAYS=3
RETENTION_WEEKS=4
RETENTION_MONTHS=0
RETENTION_YEARS=0
PRUNE_FREQUENCY=monthlyPer visionare l’elenco dei comandi disponibili, eseguiamo:
restic_backup.shOra possiamo avviare il primo backup con:
restic_backup.sh nowTra le opzioni disponibili c’è anche la possibilità di creare un servizio che si occupi in automatico di avviare lo script con i tempi specificati nell’opzione BACKUP_FREQUENCY. Per caricare il servizio basterà digitare:
restic_backup.sh enablein alcuni casi, se systemd Linger è disabilitato, sarà necessario abilitarlo con:
loginctl enable-linger <user>Riporto qui solo alcuni comandi più comuni:
elenco degli snapshot:
restic snapshotsIMPORTANTE: si puà usare latest come ID_SNAPSHOT per identificare l’ultimo backup effettuato.
Elenco file in uno snapshot:
restic ls <ID_SNAPSHOT> <eventuale_filtro>dove <eventuale filtro> può essere il nome di un file o una cartella, ed infine per fare il restore in una cartella temporanea (es /tmp/restore) di un file in particolare:
restic restore <ID_SNAPSHOT> --target /tmp/restore --include <eventuale_filtro>Un’altra funzionalità molto comoda è quella di poter montare uno snapshot e poterlo “navigare” come una normale cartella, es:
mkdir /mnt/restic
restic mount /mnt/restic
e per smontare, il classico:
restic unmount
enjoy!
Ti interessa acquistare un dominio a prezzi ultraconvenienti? clicca qui
Se hai trovato utili le informazioni su questo blog,
Fai una donazione!
Clicca sul bottone qui sotto o almeno clicca sul banner pubblicitario 🙂
Commenta