Per chi come non riesce a non usare Ubuntu server per qualsiasi suo server/servizio, sa bene che se non si ha un backup automatico configurato, potrebbe perdere tutto il duro lavoro fatto se qualcosa sul server va storto.

Se in più avete a disposizione un NAS Synology a casa, il gioco è fatto. Pochi passaggi per mettere tutto in sicurezza.

Nota: se avete un firewall, probabilmente dovrete aprire qualche porta (ssh? 🙂 ) per poter far comunicare server-nas

Abilita rsync e ssh sul tuo Synology

Collegati all’indirizzo del tuo Synology e accedi al Pannello di controllo

Clicca su File Services and clicca sulla tab rsync, quindi abilita Enable rsync service
Scegli una porta casuale per l’ssh (evita porte “conosciute”!)
Applica i cambiamenti con Apply

Se apri il File Station, noterai che sarà visibile una nuova cartella chiamata “NetBackup” (qui è dove saranno i tuoi backup)

Per abilitare l’ssh, apri il Pannello di Controllo, seleziona Terminal & SNMP quindi abilita Enable SSH service (anche qui evita porte “conoscute”)

Crea l’utente per rsync

Ancora una volta apri il Pannello di Controllo, clicca su User, quindi clicca Crea
Scegli il nome per l’utente in questione, io per fini di procedura lo chiamerò semplicemente rsync. Clicca Next

Non preoccuparti di scegliere gruppi per il tuo utente, non ne hai bisogno.
Dovrai invece selezionare il permesso di utilizzare il servizio rsync (Shared Folder Sync) (tra la lista dei permessi delle Applicazioni)

Apri di nuovo il File Station e imposta i permessi R/W per l’utente appena creato sulla cartella NetBackup

Home Folders (solo se non le hai impostate per gli utenti)

Apri il Pannello di Controllo, clicca su User e su Advanced. Abilita Enable user home service

Connettiti al Synology via SSH

Usa il tuo programma preferito per collegarti come amministratore in ssh sul tuo NAS. Per Windows ti consiglio Putty, per MAC puoi usare il Finder (Vai->Connessione al server..)

Una volta connesso, digita il seguente comando per avere privilegi elevati
sudo su

Vai nella home dell’utente rsync

cd /volume1/homes/rsync

Crea una cartella (sarà nascosta vista la presenza del punto) dove le chiavi ssh risiederanno

mkdir .ssh

Definisci il proprietario della cartella e dai i permessi all’utente (nel mio caso) rsync sulla stessa

chown rsync:users .ssh
chmod 711 .ssh

Entra nella cartella “.ssh”

cd .ssh

Crea un file chiamato “authorized_keys”

vim authorized_keys

Lascialo vuoto, quindi digita :wq e premi Invio per salvare

Definisci il proprietario del file e dai i permessi all’utente (sempre nel mio caso) rsync sullo stesso

chown rsync:users authorized_keys
chmod 711 authorized_keys

Connettiti al tuo Ubuntu server via SSH

Connettiti con un utente che abbia tutti i privilegi sulla cartella che vuoi backup-are (si dice? 🙂 )

quindi crea le tue chiavi SSH digitando

ssh-keygen

Non impostare una password e lascia la cartella proposta

Il comando lanciato creerà file chiavi, id_rsa e id_rsa.pub

Accedi alla cartella .ssh proposta nel passo precedente

cd .ssh

Apri la chiave id_rsa.pub – il contenuto di questo file va copiato nel file authorized_keys creato sul tuo Synology
Questo permetterà di connetterti dal tuo Ubuntu server direttamente sul tuo NAS

Una volta copiato il contenuto, sul tuo server, digita (o copia) il seguente comando per fare il primo backup della tua cartella sul Synology

rsync -av --delete -e "ssh -i /home/[USER]/.ssh/id_rsa -p [PORTA RSYNC SCELTA SUL SYNOLOGY]" [/home/[USER]/[cartella]/[dasalvare]] rsync@[INDIRIZZO IP DEL SYNOLOGY]::NetBackup/

Il parametro –delete definisce un backup unidirezionale (se cancelli qualcosa sul server, lo cancellerà dal NAS). Se non ti interessa avere questa funzionalità, rimuovilo.

Crea un cronjob per un backup automatico

Sul tuo server Ubuntu, digita

sudo crontab -e

per entrare nella lista dei cronjob (se non ne hai nessuno vedrai delle scritte espicative in verdino)

Scegli i minuti e l’ora (in formato 24h) alla quale vuoi far effettuare il backup (giornaliero), quindi incolla lo script di backup

29 23 * * * rsync -av --delete -e "ssh -i /home/[USER]/.ssh/id_rsa -p [PORTA RSYNC SCELTA SUL SYNOLOGY]" [/home/[USER]/[cartella]/[dasalvare]] rsync@[INDIRIZZO IP DEL SYNOLOGY]::NetBackup/

In questo caso lo script verrà lanciato alle 23.29 di ogni giorno – sei ovviamente libero di definire l’orario e i giorni che vuoi.
Gli altri asterischi rappresentano la il giorno del mese, il mese e il giorno della settimana.

Ti lascio una tabella espicativa sul funzionamento del cron:

# .---------------- [m]inute: minuto (0 - 59) 
# |  .------------- [h]our: ora (0 - 23)
# |  |  .---------- [d]ay of month: giorno del mese (1 - 31)
# |  |  |  .------- [mon]th: mese (1 - 12) OPPURE jan,feb,mar,apr... 
# |  |  |  |  .---- [w]eek day: giorno della settimana (0 - 6) (domenica=0 o 7)  OPPURE sun,mon,tue,wed,thu,fri,sat 
# |  |  |  |  |
# *  *  *  *  *  comando da eseguire

Scrivimi nei commenti per qualsiasi informazione! Sarò felice di aiutarti!

Buon backup! 🙂

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *