top of page

Con rsync, velocità fulminea e sicurezza garantita per ogni copia!

Immagine del redattore: texservice13texservice13

Aggiornamento: 11 gen


rsync è un potente strumento di sincronizzazione dei file utilizzato per il backup e la migrazione dei dati grazie alla sua efficienza e alla capacità di trasferire solo le modifiche incrementali tra i file.


E' una valida alternativa al comando DOS xcopy di Windows che, però, non esegue la copia incrementale nello stesso modo in cui lo fa rsync. Infatti, puoi utilizzare il comando xcopy con l'opzione /D per copiare solo i file modificati, ma a differenza di rsync non è altrettanto efficiente  nel determinare esattamente quali porzioni di file sono cambiate e trasferirle in modo incrementale.


Tanto premesso entriamo più nel dettaglio (per amor di chiarezza quello che in Windows si chiamano "cartelle", da un punto di vista storico ed informatico si chiamano directory.

Inoltre, è utile sapere che le c.d. risorse di rete possono essere : stampanti oppure aree di disco. Vengono dette "risorse di rete", perché sottendono che NON siano fisiche, cioè attaccate fisicamente alla macchina (come chiavette o hard-disk esterno) o dentro la macchina (hard-disk), ma che sono remote e raggiungibili tramite una rete di computer.


Prima di tutto, per utilizzare rsync su Windows, è necessario avere installato cwRsync (io uso questa versione, ma la procedura di installazione è piuttosto tecnica, e quindi lascio a voi la scelta); tuttavia, googlando, ho trovato un'altra versione di rsync per Windows.


Partiamo dal supporto che potrebbe essere una una vecchia macchina di Windows XP (che vogliamo utilizzare come server di backup) con spazio a disposizione sufficiente (parlo di almeno qualche centinaio di megabyte liberi); supponiamo che questa macchina XP si chiami SERVER_BACKUP. Ricordo che il protocollo di condivisione dati che mi permetterà di copiare i file usando la rete è SMB1 o SMB2 (Server Message Block versione 1 o 2) . Quindi, accertatevi che entrambe le macchine - sia la macchina da cui copiare il dati (che chiamerò client); che la macchina (il PC) su cui copiare i dati (che chiamerò server) utilizzino entrambi lo stesso protocollo.


Ora che tutto è pronto, seguirò questo procedimento:

  • creare uno spazio nell'hard-disk del server di backup;

  • condividere la risorsa del server di backup;

  • agganciare una risorsa remota di rete dal client con il comando net use;

  • copiare il dati dalla cartella del client al disco condiviso del server con rsync.

  • smontare (scollegarmi per sicurezza) dal server di backup


il procedimento di cui sopra, inoltre, lo voglio salvare all'interno di un file comando, così non devo riscrivere a mano i passaggi ma sarà il sistema operativo che riga per riga mi eseguirà tutti i passaggi dal primo fino all'ultimo; pertanto, bisogna salvare i passaggi su elencati in un file creato, ad esempio, usando Notepad, dandogli un nome, per esempio: salva_tutto.cmd. (N.B. bisogna ricordarsi bene dove si salva il file siffatto, perché poi bisogna trovarlo ed eseguirlo...)


Quindi, premesso che:

  • l'utente su Windows XP si chiami backup e che a questo utente sia assegnata la password: salvo12345. Ammesso quanto sopra, creiamo una cartella, per esempio : c:\hangar e condividiamola con il nome "salvotutto" e mettiamo come utente di condivisione backup permettendogli la lettura / scrittura / esecuzione;

  • la cartella del client (la macchina di cui copiare i dati) sia la cartella c:\documenti e che il programma rsync.exe sia stato scaricato in una sua cartella che si chiama c:\rsync.


Tanto premesso, ecco qui sotto una versione semplice dello script che funziona in un ambiente Windows usando il prompt dei comandi (utilizzare un editor di testo, come Notepad, per copiare ed incollare i comandi qui sotto).


@echo off
REM Questo script monta un'unità di rete, sincronizza i file dalla REM directory locale a quella remota usando rsync, e quindi si 
REM scollega 

REM monta l'unità remota di rete...
REM la net use ha come parametri: 
REM net use [unità] [percorso di rete] /user:[utente][password] 

REM commenta questa istruzione se il supporto di backup è un h.d. o 
REM una chiavetta 

net use z: \\server_backup\salvatutto /user:backup salvo12345

REM Sincronizza i file con rsync...
REM switch di rsync:
REM a : aggiungi file
REM v : modalità verbosa
REM z : utilizza la compressione durante la trasmissione
REM r : copia tutti i files dalla cartella c:\documenti in giù 

C:\rsync\rsync.exe -avzr c:\documenti\ z:\

REM Smonta l'unità di rete collegata per sicurezza
REM commenta questa istruzione se il supporto di backup è un h.d. o 
REM una chiavetta

net use z:/delete

Quindi, se ho salvato il file salva_tutto.cmd in c:\temp, dal prompt di DOS scrivere cd c:\temp e battere il tasto invio; a seguito di quanto sopra dovrebbe comparire c:\temp>_ a questo punto scrivere salva_tutto.cmd e battere il tasto invio....et voilà, rsync effettuerà il salvataggio incrementale di tutti i file presenti nella cartella c:\documenti, copiandoli nella cartella remota c:\hangar del server di backup.


N.B. questo esempio, sottende che la risorsa di backup sia un computer collegato in rete; tuttavia, è anche possibile effettuare le copie differenziali su hard-disk rimovibili tipo USB o chiavette; basta commentare (con REM) la parte che riguarda la connessione di rete ed assicurarsi che l'hard-disk esterno o la chiavetta abbiano la lettere dell'unità dichiarata nel mio script (Z:\); altrimenti adattarlo con quello proposto dal computer.


Per amor di completezza, segnalo anche che c'è la possibilità di effettuare la copia tramite rsync usando un "server rsync", cioè evitando di utilizzare il protocollo di condivisione risorse remota di Windows. Pertanto, per chi fosse interessato, segnalo questo software: http://www.aboutmyip.com/AboutMyXApp/DeltaCopy.jsp


Ovviamente il comando di rsync cambia totalmente, in particolare dev'essere sostituito da:

C:\rsync\rsync.exe -avzr c:\documenti\ z:\

ad questo nuovo tipo di esempio:

C:\rsync\rsync.exe -avzr c:\documenti\ backup@SERVER_BACKUP:salvatutto

Infine, a compendio, consiglio anche di leggere i miei post in allegato alla presente.


15 visualizzazioni0 commenti

Comments


bottom of page