Rsync: differenze tra le versioni

Nessun oggetto della modifica
 
(7 versioni intermedie di uno stesso utente non sono mostrate)
Riga 18: Riga 18:
[[rsync]] supporta una moltitudine di parametri, di seguito si fornirà dunque un solo esempio con alcuni dei parametri più comuni:
[[rsync]] supporta una moltitudine di parametri, di seguito si fornirà dunque un solo esempio con alcuni dei parametri più comuni:


<pre>rsync -n -r -t -p -o -g -v --progress --delete -i --exclude-from=/cartella/file_esclusioni.txt /cartella/sorgente/ /cartella/destinazione/</pre>
<pre>rsync -n -r -t -p -o -g -v -i --progress --delete --exclude-from=/cartella/file_esclusioni.txt --log-file=mio_log.txt /cartella/sorgente/ /cartella/destinazione/</pre>


* '''-n''', avvia come simulazione, ovvero mostra solo quello che farebbe senza modificare realmente alcunché. Quest'opzione è FONDAMENTALE, in quanto permette di identificare eventuali comportamenti e/o risultati anomali e quindi di correggere il comando. Si ricordi che un errore nella definizione del comando può comportare la perdita dei dati nella cartella di destinazione o anche in quella sorgente se per esempio si invertono accidentalmente le due. Chiaramente una volta verificato il risultato della sincronizzazione quest'opzione andrà eliminata in modo da far effettivamente sincronizzare le directory.
* <code>-n</code> (<code>--dry-run</code>), avvia come simulazione, ovvero mostra solo quello che farebbe senza modificare realmente alcunché. Quest'opzione è FONDAMENTALE, in quanto permette di identificare eventuali comportamenti e/o risultati anomali e quindi di correggere il comando. Si ricordi che un errore nella definizione del comando può comportare la perdita dei dati nella cartella di destinazione o anche in quella sorgente se per esempio si invertono accidentalmente le due. Chiaramente una volta verificato il risultato della sincronizzazione quest'opzione andrà eliminata in modo da far effettivamente sincronizzare le directory.
* '''-r''', sincronizza anche le sottodirectory e tutti i relativi file.
* <code>-r</code> (<code>--recursive</code>), sincronizza anche le sottodirectory e tutti i relativi file.
* '''-t''', aggiorna anche la data di "Ultima modifica" dei file copiati nella cartella di destinazione.
* <code>-t</code> (<code>--times</code>), aggiorna anche la data di "Ultima modifica" dei file copiati nella cartella di destinazione.
* '''-p''', imposta per i file nella cartella di destinazione lo stesso schema di permessi di quelli sorgenti.
* <code>-p</code> (<code>--perms</code>), imposta per i file nella cartella di destinazione lo stesso schema di permessi di quelli sorgenti.
* '''-o''', imposta per i file nella cartella di destinazione lo stesso proprietario di quelli sorgenti, ove possibile.
* <code>-o</code> (<code>--owner</code>), imposta per i file nella cartella di destinazione lo stesso proprietario di quelli sorgenti, ove possibile.
* '''-g''', imposta per i file nella cartella di destinazione lo stesso gruppo di quelli sorgenti, ove possibile.
* <code>-g</code> (<code>--group</code>), imposta per i file nella cartella di destinazione lo stesso gruppo di quelli sorgenti, ove possibile.
* '''-a''', (modalità archivio) è equivalente a impostare tutte le opzioni precedenti (<code>-rtpog</code>), e inoltre mantiene link simbolici, file speciali e (solo se eseguito come [[privilegi di amministrazione|root]]) file dispositivo. Si possono invece trasformare tutti i link simbolici nei file a cui puntano con l'opzione <code>-L</code>, oppure in alternativa anche solo limitatamente a quelli la cui destinazione non verrebbe altrimenti copiata con l'opzione <code>--safe-links</code>.
* <code>-v</code> (<code>--verbose</code>), aumenta il numero di informazioni stampate a video.
* '''-v''', aumenta il numero di informazioni stampate a video.
* <code>-i</code> (<code>--itemize-changes</code>), fornisce una serie di indicazioni sulle operazioni che sta eseguendo a riguardo di un certo file o cartella. Maggiori informazioni nell'apposita sezione.
* '''--progress''', mostra un indicatore percentuale del progresso delle operazioni. Implica l'opzione ''-v'', pertanto se si specifica ''--progress'' è ridondante specificare anche ''-v'' (come fatto in quest'esempio).
* <code>--progress</code>, mostra un indicatore percentuale del progresso delle operazioni. Implica l'opzione ''-v'', pertanto se si specifica ''--progress'' è ridondante specificare anche ''-v'' (come fatto in quest'esempio).
* '''-u''', (modalità aggiornamento) salta tutti i file già presenti a destinazione con un tempo di modifica più recente oppure con lo stesso tempo di modifica e stessa dimensione. Quindi solo i file non presenti in destinazione oppure quelli meno recenti di quelli sorgenti saranno inviati.
* <code>--delete</code>, elimina nella directory di destinazione tutti i file che non sono presenti nella directory sorgente. Equivale a <code>--delete-during</code> se versione rsync >= 3.0.0 o <code>--delete-before</code> diversamente. Si ricordi che nei log e nelle informazioni stampate a video la voce ''deleting'' è associata solo e soltanto a quei file che sono presenti nella cartella di destinazione, ma non in quella sorgente; se un file è presente nella cartella di destinazione e deve essere sostituito perché quello sorgente ha subito delle modifiche, tale messaggio non compare (le modifiche apportate ad un file sono visibili tramite gli attributi, vedi più avanti).
* '''--delete''', elimina nella directory di destinazione tutti i file che non sono presenti nella directory sorgente. Si ricordi che nei log e nelle informazioni stampate a video la voce ''deleting'' è associata solo e soltanto a quei file che sono presenti nella cartella sorgente, ma non in quella di destinazione; se un file è presente nella cartella di destinazione e deve essere sostituito perché quello sorgente ha subito delle modifiche, tale messaggio non compare (le modifiche apportate ad un file sono visibili tramite gli attributi, vedi più avanti).
{{Box|Importante|''If the sending side detects any I/O errors, then the deletion of any files at the destination will be automatically disabled. This is to prevent temporary filesystem failures (such as NFS errors) on the sending side from causing a massive deletion of files on the destination.'' Si sottolinea ancora una volta che i vari <code>delete</code> non influenzano minimanente il comportamento di rsync per quanto riguarda l'aggiornamento dei file esistenti (anche se è ovvio che un file per essere aggiornato deve essere prima eliminato). Scegliere <code>delete-delay</code> o peggio <code>delete-after</code> non garantisce una maggior tutela per quanto riguarda l'aggiornamento dei file, sono opzioni pensate esclusivamente per casi particolari.}}
* '''-i''', fornisce una serie di indicazioni sulle operazioni che sta eseguendo a riguardo di un certo file o cartella. Maggiori informazioni nell'apposita sezione.
** <code>--delete-before</code>, elimina tutti i file che sono da eliminare prima di iniziare a trasferire anche solo un file. Serve solo se si hanno problemi di spazio. Più lento delle altre modalità (perché deve attraversare ricorsivamente due volte tutte le cartelle, la prima per determinare i file da eliminare e la seconda per aggiungere/aggiornare i rimanenti).
* '''--exclude-from''', specifica il percorso di un file contenente un elenco di file e cartelle da non includere nelle operazioni di sincronizzazione. Maggiori informazioni nell'apposita sezione.
** <code>--delete-during</code> (<code>--del</code>), i file da eliminare vengono eliminati un po' per volta, cartella per cartella. In sintesi quando viene processata una nuova directory elimina prima i file da eliminare e poi aggiorna/aggiunge quelli nuovi. L'unica modalità di interesse per la maggior parte degli utenti è quindi questa, salvo casi particolari per cui si rimanda al manuale di rsync.
* <code>--exclude-from</code>, specifica il percorso di un file contenente un elenco di file e cartelle da non includere nelle operazioni di sincronizzazione. Maggiori informazioni nell'apposita sezione.
* <code>--log-file</code>: salva la lista delle operazioni effettuate nel file di log specificato.
Altre opzioni utili:
* <code>-D</code>, scorciatoia per <code>--devices</code> + <code>--specials</code>. Mantiene file speciali e (solo se eseguito come [[privilegi di amministrazione|root]]) file dispositivo.
* <code>-l</code> (<code>--links</code>), copia i link simbolici come file (ovvero NON processare ricorsivamente eventuali cartelle referenziate tramite questi link).
* <code>-L</code> (<code>--copy-links</code>), è l'opposto di <code>-l</code>, ovvero trasforma tutti i link simbolici nei file/directory a cui puntano.
* <code>-a</code> (<code>--archive</code>), (modalità archivio) è equivalente a impostare <code>rlptgoD</code>.
* <code>-u</code> (<code>--update</code>), (modalità aggiornamento) salta tutti i file già presenti a destinazione con un tempo di modifica più recente oppure con lo stesso tempo di modifica e stessa dimensione. Quindi solo i file non presenti in destinazione oppure quelli meno recenti di quelli sorgenti saranno inviati.


==== Opzione "-i", "--itemize-changes" ====
==== Opzione <code>-i</code> (<code>--itemize-changes</code>) ====


Attivando quest'opzione all'inizio di ogni riga viene stampato un codice del tipo '''YXcstpoguax'''. Questo codice può essere scomposto in tre parti: ''Y-X-cstpoguax''.
Attivando quest'opzione all'inizio di ogni riga viene stampato un codice del tipo '''YXcstpoguax'''. Questo codice può essere scomposto in tre parti: ''Y-X-cstpoguax''.
3 084

contributi