Mi sa che nessuno ci sta mettendo le mani ancora
Però io continuo
Ho avuto qualche minuto per provare una cosa molto interessante: rsync.
Visto che non serve a niente avere mille dischi sullo stesso hardware, o almeno è poco sicuro, ho pensato di usare un vecchio WD My Cloud come destinazione per alcune copie dei dati più importanti, direttamente da Freenas (ma è identico direi anche in altri sistemi). Di fatto rsync è un sistema client/server dove il client fa push (invia) dei dati, ed il server li riceve (pull).
La cosa comoda è che si può fare rsync anche tramite SSH, di fatto ovunque in rete, anche su client/server distanti, basta che siano raggiungibili e che ssh ed rsync sia attivo su entrambi.
La cosa è molto semplice.
- Attivare rsync su WD My Cloud:
Occorre modificare il file /etc/default/rsync per attivare il servizio: modificare quindi il valore RSYNC_ENABLE e metterlo a true (RSYNC_ENABLE=true) di default è false
- Creare il file di configurazione e avviare il servizio:
Il file di configurazione standard è /etc/rsyncd.conf, inserire le righe come segue:
Codice:
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsync.log
[rsync]
path = /shares/rsync
uid = root
gid = share
read only = no
list = yes
auth users = root
secrets file = /etc/rsyncd.secrets
Le configurazioni importanti sono sotto il tag [rsync], specialmente il path, la uid e la gid (utente e gruppo della directory di destinazione. Infine il file secrets, la formula è utente: password quindi andremo ad editarlo e scriveremo
Codice:
root:pass_di_root
Eseguire quindi i comandi, in successione:
Codice:
chmod 600 rsyncd.secrets
/etc/init.d/rsync restart
Se al primo avvio si riceve un warning è tutto normale, non essendo avviato viene notificato che non si riesce a fermare in quanto non attivo. Ignoratelo.
Si può decidere di metterlo in auto start all'avvio, andare quindi dentro alla directory /etc/rc2.d/ e digitare il seguente comando:
Codice:
ln -s ../init.d/rsync S91rsync
- Generare le chiavi ssh:
Occorre generare le chiavi SSH sul client (da me Freenas) e copiare quella pubblica sul server (WD My Cloud) così da non chiedere la password quando si lancia il comando rsync.
Codice:
ssh-keygen -t rsa -b 2048
Rispondere alle domande che vengono fatte (anche premendo sempre invio e basta), le chiavi vengono generate dentro alla directory .ssh all'interno della home dell'utente (nel mio caso root): id_rsa ed id_rsa.pub. Quella che interessa è la .pub
- Copiare la chiave sul server:
All'interno della /root (home user dell'utente root) del WD My Cloud non esiste la directory .ssh, crearla quindi con:
Codice:
mkdir ~/.ssh
chmod 0700 ~/.ssh
touch ~/.ssh/authorized_keys
chmod 0644 ~/.ssh/authorized_keys
Con questo comando si copia il contenuto della chiave pubblica dentro al file appena creato authorized_keys:
Codice:
cat /home/utente_usato/.ssh/id_rsa.pub | ssh utente_usato@remotehost 'cat >> .ssh/authorized_keys'
Ora facendo SSH dal client al server la password non verrà più chiesta.
- Configurazione Freenas:
Passiamo ora alla configurazione di Freenas. Usandolo come client che copia i dati verso il server, occorre concentrarsi sulla parte Tasks-->Rsync Tasks
Creiamo quindi un nuovo task.- Path : Path locale
- User : nell'esempio usato root
- Remote Host : la destinazione (nome od ip, nella forma user@ip se l'utente è diverso da quanto impostato sopra
- Rsync Mode : Rsync over SSH
- Port : 22 (default), cambiare se diversa
- Remote Path : Il path remoto dove salvare i file/directory
Il resto impostarlo a piacere, io ho inserito minuti = 00, ore = 04 (quattro di notte), Ogni giorno (mettere 1 nella tab Each N day of month), Month tutto flaggato, Day of week tutto flaggato. Il resto in default.
Se premendo OK non vi da errori, e non dovrebbe darne, siete a posto.