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! 🙂