Come automatizzare il backup dei dati con Linux

La scorsa volta hai visto come fare il backup dei tuoi dati, in locale e in un’unita’ remota, con Linux.

Ora ti faro’ vedere in pochi passaggi come potrai automatizzare il salvataggio in base alle tue esigenze.

Ti ricordi che quando lanciavi il comando per la sincronizzazione remota il sistema operativo ti chiedeva di digirare la password ? Bene, prima di passare al comando utile al nostro scopo dobbiamo fare in modo che la nostra sincronizzazione abbia seguito senza dover digitare ogni volta la passwd.

Per fare cio’ digitiamo il seguente comando:
ssh-keygen
ci apparira’ il seguente output:
Generating public/private rsa key pair.

Enter file in which to save the key (/home/formaggio/.ssh/id_rsa):
premiamo INVIO e apparira’ il seguente output:

Enter passphrase (empty for no passphrase):

premiamo INVIO e apparira’ il seguente output:

Enter same passphrase again:

premiamo INVIO un’altra volta e apparira’ quanto segue:

 

Your identification has been saved in /home/formaggio/.ssh/id_rsa.

Your public key has been saved in /home/formaggio/.ssh/id_rsa.pub.

The key fingerprint is:

SHA256:HW5/BxMUk4aS1BW1k/P9O74n64wl+CKtDVA4U3pp2So formaggio@lnx

The key's randomart image is:
+---[RSA 2048]----+
o=*.ooo.=..o
E= o.= . +  o
o...+ o = ..
.oo  + +  o
o.. .S o. .
..   oo o.
.   .oo.o o
. ...o. o .
.oooo.
+----[SHA256]-----+

 

 

La chiave quindi e’ stata appena creata e la possiamo trovare nel seguente percorso:

/home/formaggio/.ssh/

All’interno della direcoty nascosta .ssh troviamo il file id_rsa.pub .

Ora non ci resta che copiare il file id_rsa.pub nella cartella .ssh nella home dell’utente remoto.

Digitiamo il comando:

scp .ssh/id_rsa.pub pancetta@192.168.0.2:/home/pancetta/.ssh/authorized_keys

digitiamo la password per l’ultima volta in quanto poi non sara’ piu’ necessario.

Attenzione alle permissioni della directory .ssh remota, esse dovranno infatti essere del tipo:
drwxr-xr-x per la directory .ssh

e

-rw-r--r-- per la chiave authorized_keys
Facciamo una prova digitando il comando

ssh pancetta@192.168.0.2

Ti sei trovato nell’unita’ remota loggato con l’utente Mr. pancetta senza digitare la password ? Bene.

Passiamo quindi all’automatizzazione del nostro backup!

Hai mai sentito parlare di crontab ?

Crontab e’ un comando che ti permette di pianificare altri comandi. Per usarlo basta editare il file della configurazione e lo puoi fare tranquillamente, da riga di comando, digitando:
crontab -e
Il file che apparira’ avra’ questo tipo di formato:
# Edit this file to introduce tasks to be run by cron.

#

# Each task to run has to be defined through a single line

# indicating with different fields when the task will be run

# and what command to run for the task

#

# To define the time you can provide concrete values for

# minute (m), hour (h), day of month (dom), month (mon),

# and day of week (dow) or use '*' in these fields (for 'any').#

# Notice that tasks will be started based on the cron's system

# daemon's notion of time and timezones.

#

# Output of the crontab jobs (including errors) is sent through

# email to the user the crontab file belongs to (unless redirected).

#

# For example, you can run a backup of all your user accounts

# at 5 a.m every week with:

# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/

#

# For more information see the manual pages of crontab(5) and cron(8)

#

# m h dom mon dow command

 

Alla fine dei commenti (che puoi tranquillamente cancellare) andiamo a scrivere la riga relativa al backup che vogliamo fare.

Prendendo come esempio la sincronizzazione dell’archivio nell’unita’ remota, ma puoi fare la stessa cosa pure per la sincronizzazione in locale, che avevamo visto in precedenza, andremo a scrivere quindi la seguente riga:

0 18 * * 1-6 rsync -avz -e ssh /home/dati pancetta@192.168.0.2:/home/backup/

La riga che vedi significa che dal lunedi al sabato, alle ore 18, il sistema operativo eseguira’ la sincronizzazione del tuo archivio in totale autonomia.

Ovviamente l’utente che esegue il comando deve avere i relativi permessi per le directory indicate nella riga.

Come e’ andato il nostro backup ? La cartella di destinazione e’ ancora al suo posto ? Abbiamo ancora le permissioni per scriverci i file sincronizzati ? L’unita’ remota dove andiamo a sincronizzare il nostro archivio e’ online ? ...e come faccio saperlo ? Se a fine riga ci aggiungi
> backup.log 2>&1
potrai avere la tua risposta.

In sostanza gli eventuali errori o altro che potrebbero verificarsi verranno scritti nel file backup.log nella tua home.

Ti consiglio sempre di dare un occhiata a quel file di log per analizzare il processo e quindi constatare la buona riuscita della tua sincronizzazione. A volte succede infatti che il backup non sia andato a buon fine non per colpa tua bensi’, ad esempio, perche’ nella sede remota c’e’ stato un black-out o, per qualche “misterioso” motivo, qualcuno ha cambiato la configurazione della rete e/o dell’unita’ di destinazione senza avvisarti…

Nessun commento ancora

Lascia un commento

Unable to load the Are You a Human PlayThru™. Please contact the site owner to report the problem.