3973 Letture
Come creare backup crittografati su Linux e Windows

Come creare backup crittografati su Linux e Windows

Alcuni semplici suggerimenti per creare backup compressi e cifrati in ambiente Linux e Windows usando solo la riga di comando. Un comodo script la cui esecuzione può essere programmata con cron o con l'Utilità di pianificazione di Windows.

Se si avesse bisogno di creare in automatico backup del contenuto di file e cartelle in Linux e in Windows è possibile procedere in diversi modi.
Nell'articolo Backup, le migliori strategie per proteggere i dati abbiamo presentato tanti strumenti e metodologie efficaci per creare backup dei propri dati.

Creare backup crittografati da riga di comando su Linux

Per chi lavora quotidianamente con molteplici sistemi, il backup dei dati da riga di comando rimane uno strumento eccellente per copiare file e cartelle su altri sistemi evitando che possano andare persi in seguito a un errore umano o a danni a livello hardware.

In Linux si può usare una semplice strategia per creare il backup dei dati che più interessano.
Nella finestra del terminale o attraverso una shell SSH si può digitare semplicemente il comando seguente così da creare uno script che si occupi dell'operazione di backup:
nano ./backup.sh


#!/bin/sh
today=`date '+%Y%m%d'`;
filename="Backup_$today"
tar -cvzf - "PERCORSO_CARTELLA" | gpg --passphrase 'PASSWORD' --batch --quiet --yes -c -o $filename.tar.gz.gpg


Al posto di PERCORSO_CARTELLA va digitata la directory completa il cui contenuto deve essere oggetto del backup.
La stringa PASSWORD va invece sostituita con una parola chiave, sufficientemente lunga e complessa, per proteggere l'archivio compresso (generato con l'utilità tar) utilizzando la cifratura.
Come indicato nella variabile $filename, al nome del file sarà in questo caso assegnato il prefisso Backup_ seguito dalla data corrente tratta dall'orologio di sistema.

L'archivio di backup può essere eventualmente inviato via FTP su un altro server usando le indicazioni riportate nell'articolo Creare backup di un file su Linux e caricarlo via FTP.

Prima del comando tar, all'interno dello script, si può usare quanto segue se si volesse scaricare in locale tutto il contenuto di una risorsa remota accessibile via FTP:
wget -mr --user="USERNAME" --password="PASSWORD" "ftp://SERVER_FTP/DIRECTORY/*"

Il comando wget, effettuate le opportune sostituzioni, provvederà a scaricare ricorsivamente il contenuto di tutte le cartelle presenti sul server FTP indicato.

Lo script dovrà essere reso eseguibile impartendo il comando chmod a+x ./backup.sh.

Usando il comando crontab -e si potrà richiedere l'avvio automatico di backup.sh su base programmatica.

I file crittografati con gpg possono essere decodificati in ambiente Linux usando il comando seguente dove Backup.tar.gz.gpg è il nome del file crittografato mentre Backup.tar.gz è il nome del file decodificato che si intende ottenere:
gpg -o Backup.tar.gz -d Backup.tar.gz.gpg

Come creare il backup di una cartella in Windows usando un semplice script

Per creare un backup crittografato in Windows si può ad esempio utilizzare il noto compressore file 7-Zip che supporta anche la riga di comando.

Supponendo di aver installato 7-Zip nella cartella C:\Program Files\7-Zip, si può creare in Windows un nuovo file chiamato backup.cmd.

Incollando al suo interno ciò che segue, Windows creerà un backup cifrato usando l'utilità 7-Zip:
set DATESTAMP=%DATE:~6,4%%DATE:~3,2%%DATE:~0,2%
"C:\Program Files\7-Zip\7z.exe" a -mhe -pPASSWORD -t7z D:\Backup_%DATESTAMP%.7z PERCORSO_CARTELLA -r


Alla stringa PASSWORD bisognerà sostituire la password da usare a protezione dell'archivio compresso e cifrato con 7-Zip.
Ad PERCORSO_CARTELLA va sostituito il percorso completo della cartella oggetto di backup.

In questo caso, il file crittografato e creato in formato 7-Zip viene salvato con il prefisso Backup_ nel nome seguito dalla data di creazione dell'archivio.


L'opzione -mhe consente di proteggere con la crittografia anche in nomi dei file e la loro data di creazione.

Invio tramite FTP dei file oggetto di backup in Windows

Se si volessero inviare a un server FTP remoto i file oggetto di backup in ambiente Windows, è possibile ricorrere all'apprezzata utilità WinSCP disponibile in versione portabile.

C:\WinSCP\WinSCP.com /ini=nul /command "open ftp://USERNAME:PASSWORD@SERVER_FTP" "put d:\Backup_%DATESTAMP%.7z /" "exit"

Il comando invia l'archivio di backup compresso e crittografato con 7-Zip sul server FTP remoto (modificare la stringa SERVER_FTP con l'indirizzo mnemonico o l'IP corretto) usando le credenziali USERNAME e PASSWORD.

Il percorso C:\WinSCP deve essere ovviamente sostituito con la cartella nella quale è stato estratto WinSCP in versione portabile.

Aggiungendo il comando allo script backup.cmd creato in precedenza e richiedendone l'esecuzione su base programmatica usando Utilità di pianificazione, è possibile fare in modo che Windows crei automaticamente backup cifrati della cartella o delle cartelle indicate.

Per decodificare il file in formato .7z basterà farvi doppio clic e inserire la password specificata in precedenza a protezione dell'archivio.


Nel caso di Windows, suggeriamo anche la lettura dell'articolo Backup locale, su cartelle di rete o sul cloud usando solo gli strumenti di Windows.

Come creare backup crittografati su Linux e Windows