Comando rsync di base per copie identiche a bit


16

Per quanto ne so, il seguente comando:

sudo rsync --delete -azvr /home/oshiro/Desktop/source/ /home/oshiro/Desktop/destination

È tutto ciò di cui ho bisogno per creare una semplice sincronizzazione di file da una posizione a un'altra? O il comando sopra fa qualcosa di più in background che non conosco? Ad esempio, crea una sorta di controllo delle versioni, dove posso specificare un tempo passato per ottenere i file come erano passati?

Questa è una funzione che non voglio abilitare in questa fase. Tutto quello che voglio è una copia bit-identica dei file da una posizione all'altra. Posso liberarmi di uno di questi parametri o devo aggiungere altri parametri per rendere le copie bit-identiche senza controllo delle versioni. Fondamentalmente, non voglio creare backup come il sistema di backup mac time machine crea backup.

Risposte:


16

Rsync non esegue alcun tipo di controllo delle versioni né mantiene alcuna cronologia a meno che non venga indicato con opzioni come --backup. Esistono strumenti di backup che utilizzano rsync, ma rsync stesso non è uno strumento di backup più di quattro ruote che fanno una macchina. Rsync gestisce solo la sincronizzazione.

Per quanto riguarda le opzioni che hai usato o che potresti voler usare:

  • -asignifica "copiare quasi tutto" (copiare ricorsivamente le directory, copiare i collegamenti simbolici in quanto tali, conservare tutti i metadati, ecc.). Usa questa opzione a meno che tu non stia facendo qualcosa di insolito.
  • Inoltre -a, potresti voler utilizzare -Hper preservare i collegamenti -Areali , per preservare gli ACL ( -apreserva solo le autorizzazioni unix tradizionali) o -Xper preservare gli attributi estesi.
  • -rè già incluso in -a.
  • -v significa verboso.
  • -z è inutile per una copia locale.
  • --delete elimina i file nella destinazione che non sono presenti nell'origine.

Quindi questo è il comando di base per rendere la destinazione identica alla fonte (collegamenti fissi assenti, ACL e attributi estesi):

rsync -a --delete SOURCE/ DESTINATION/

5

Di solito uso il comando da questa risposta . Il vantaggio è che conserva anche attributi e ACL estesi.

rsync -avxHAX --progress / /new-disk/

Le opzioni sono:

-a  : all files, with permissions, etc..
-v  : verbose, mention files
-x  : stay on one file system
-H  : preserve hard links (not included with -a)
-A  : preserve ACLs/permissions (not included with -a)
-X  : preserve extended attributes (not included with -a)

3

Questo comando dovrebbe essere tutto ciò di cui hai bisogno. rsyncper impostazione predefinita utilizza quello che viene chiamato un algoritmo di controllo rapido:

Rsync trova i file che devono essere trasferiti usando un algoritmo di "controllo rapido" (per impostazione predefinita) che cerca i file che sono cambiati nelle dimensioni o nell'ultima modifica. Eventuali modifiche negli altri attributi conservati (come richiesto dalle opzioni) vengono apportate direttamente sul file di destinazione quando il controllo rapido indica che non è necessario aggiornare i dati del file.

Questo va spesso bene nella maggior parte delle applicazioni. È più veloce del metodo alternativo che calcola un checksum per ogni file. Questo secondo metodo garantirà le differenze di tracciamento che potrebbero sfuggire al primo metodo.

In ogni caso rsyncnon conserva più copie dei file, è una copiatrice / un sincronizzatore di file grossolani che mantiene una directory sincronizzata con un'altra per le opzioni fornite.

Metodo di checksum

Se sei curioso, ecco il passaggio che utilizzo rsyncper eseguire questo tipo di sincronizzazione:

$ rsync -avvz -O --stats --checksum --human-readable --acls \
    --itemize-changes --progress \
    --out-format='[%t] [%i] (Last Modified: %M) (bytes: %-10l) %-100n' \
    "SRC" "DEST"

Questo genera questo tipo di output:

2014/02/20 09:51:49 INFO sending incremental file list 
2014/02/20 09:51:49 INFO delta-transmission disabled for local transfer or --whole-file 
2014/02/20 09:51:49 INFO [2014/02/20 09:51:48] [.d..t......] (Last Modified: 2014/02/19-15:51:34) (bytes: 0         ) ./
2014/02/20 09:51:49 INFO [2014/02/20 09:51:48] [>f+++++++++] (Last Modified: 2014/02/19-15:51:33) (bytes: 27981892  ) somefile.zip
      27.98M 100%   82.27MB/s    0:00:00 (xfer#1, to-check=0/2) 0
2014/02/20 09:51:49 INFO total: matches=0  hash_hits=0  false_alarms=0 data=27981892 
2014/02/20 09:51:49 INFO  
2014/02/20 09:51:49 INFO rsync[25205] (sender) heap statistics: 
2014/02/20 09:51:49 INFO   arena:        1060864   (bytes from sbrk) 
2014/02/20 09:51:49 INFO   ordblks:            1   (chunks not in use) 
2014/02/20 09:51:49 INFO   smblks:             4 
2014/02/20 09:51:49 INFO   hblks:              1   (chunks from mmap) 
2014/02/20 09:51:49 INFO   hblkhd:        135168   (bytes from mmap) 
2014/02/20 09:51:49 INFO   allmem:       1196032   (bytes from sbrk + mmap) 
2014/02/20 09:51:49 INFO   usmblks:            0 
2014/02/20 09:51:49 INFO   fsmblks:          304 
2014/02/20 09:51:49 INFO   uordblks:      667008   (bytes used) 
2014/02/20 09:51:49 INFO   fordblks:      393856   (bytes free) 
2014/02/20 09:51:49 INFO   keepcost:      393552   (bytes in releasable chunk) 
2014/02/20 09:51:49 INFO  
2014/02/20 09:51:49 INFO rsync[25207] (server receiver) heap statistics: 
2014/02/20 09:51:49 INFO   arena:         286720   (bytes from sbrk) 
2014/02/20 09:51:49 INFO   ordblks:            2   (chunks not in use) 
2014/02/20 09:51:49 INFO   smblks:             3 
2014/02/20 09:51:49 INFO   hblks:              3   (chunks from mmap) 
2014/02/20 09:51:49 INFO   hblkhd:        667648   (bytes from mmap) 
2014/02/20 09:51:49 INFO   allmem:        954368   (bytes from sbrk + mmap) 
2014/02/20 09:51:49 INFO   usmblks:            0 
2014/02/20 09:51:49 INFO   fsmblks:          224 
2014/02/20 09:51:49 INFO   uordblks:      174480   (bytes used) 
2014/02/20 09:51:49 INFO   fordblks:      112240   (bytes free) 
2014/02/20 09:51:49 INFO   keepcost:      102352   (bytes in releasable chunk) 
2014/02/20 09:51:49 INFO  
2014/02/20 09:51:49 INFO rsync[25206] (server generator) heap statistics: 
2014/02/20 09:51:49 INFO   arena:         135168   (bytes from sbrk) 
2014/02/20 09:51:49 INFO   ordblks:            2   (chunks not in use) 
2014/02/20 09:51:49 INFO   smblks:             6 
2014/02/20 09:51:49 INFO   hblks:              2   (chunks from mmap) 
2014/02/20 09:51:49 INFO   hblkhd:        401408   (bytes from mmap) 
2014/02/20 09:51:49 INFO   allmem:        536576   (bytes from sbrk + mmap) 
2014/02/20 09:51:49 INFO   usmblks:            0 
2014/02/20 09:51:49 INFO   fsmblks:          400 
2014/02/20 09:51:49 INFO   uordblks:       82960   (bytes used) 
2014/02/20 09:51:49 INFO   fordblks:       52208   (bytes free) 
2014/02/20 09:51:49 INFO   keepcost:       32816   (bytes in releasable chunk) 
2014/02/20 09:51:49 INFO  
2014/02/20 09:51:49 INFO Number of files: 2 
2014/02/20 09:51:49 INFO Number of files transferred: 1 
2014/02/20 09:51:49 INFO Total file size: 27.98M bytes 
2014/02/20 09:51:49 INFO Total transferred file size: 27.98M bytes 
2014/02/20 09:51:49 INFO Literal data: 27.98M bytes 
2014/02/20 09:51:49 INFO Matched data: 0 bytes 
2014/02/20 09:51:49 INFO File list size: 93 
2014/02/20 09:51:49 INFO File list generation time: 1.277 seconds 
2014/02/20 09:51:49 INFO File list transfer time: 0.000 seconds 
2014/02/20 09:51:49 INFO Total bytes sent: 27.99M 
2014/02/20 09:51:49 INFO Total bytes received: 34 
2014/02/20 09:51:49 INFO  
2014/02/20 09:51:49 INFO sent 27.99M bytes  received 34 bytes  11.20M bytes/sec 
2014/02/20 09:51:49 INFO total size is 27.98M  speedup is 1.00 
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.