Podstawowe polecenie rsync dla kopii identycznych z bitami

17

O ile nie rozumiem, następujące polecenie:

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

Czy to wszystko, czego potrzebuję, aby stworzyć prostą synchronizację plików z jednej lokalizacji do innej? A może powyższe polecenie robi coś więcej w tle, o czym nie wiem? Na przykład, czy tworzy jakieś wersjonowanie, w którym mogę określić przeszłość, aby uzyskać pliki, w jaki sposób zostały przekazane?

To funkcja, której nie chcę włączać na tym etapie. Wszystko czego chcę to identyczna z bitami kopia plików z jednej lokalizacji do innej. Czy mogę pozbyć się któregokolwiek z tych parametrów, czy też muszę dodać kolejne parametry, aby kopie były identyczne z bitami bez wersji? Zasadniczo nie chcę tworzyć kopii zapasowych, w jaki sposób system tworzenia kopii zapasowych wehikułach czasu Mac tworzy kopie zapasowe.

oshirowanen
źródło

Odpowiedzi:

17

Rsync nie wykonuje żadnej kontroli wersji ani nie przechowuje żadnej historii, chyba że otrzyma takie instrukcje, jak --backup. Istnieją narzędzia do tworzenia kopii zapasowych, które używają rsync, ale sam rsync nie jest narzędziem do tworzenia kopii zapasowych, podobnie jak cztery koła tworzą samochód. Rsync po prostu obsługuje synchronizację.

Jeśli chodzi o opcje, które wykorzystałeś lub możesz chcieć użyć:

  • -aoznacza „kopiuj prawie wszystko” (kopiuj katalogi rekurencyjnie, kopiuj linki symboliczne jako takie, zachowuj wszystkie metadane itp.). Użyj tej opcji, chyba że robisz coś niezwykłego.
  • Oprócz tego -amożesz użyć -Hdo zachowania twardych linków, -Ado zachowania list ACL ( -azachowuje tylko tradycyjne uprawnienia uniksowe) lub -Xdo zachowania rozszerzonych atrybutów.
  • -rjest już uwzględniony w -a.
  • -v oznacza gadatliwy.
  • -z jest bezużyteczny dla lokalnej kopii.
  • --delete usuwa pliki w miejscu docelowym, które nie są obecne w źródle.

Jest to więc podstawowe polecenie, aby obiekt docelowy był identyczny ze źródłem (brak twardych linków, list ACL i atrybutów rozszerzonych):

rsync -a --delete SOURCE/ DESTINATION/
Gilles „SO- przestań być zły”
źródło
5

Zwykle używam polecenia z tej odpowiedzi . Zaletą jest to, że zachowuje również rozszerzone atrybuty i listy ACL.

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

Dostępne są następujące opcje:

-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)
Benedikt Köppel
źródło
3

To polecenie powinno być wszystkim, czego potrzebujesz. rsyncdomyślnie używa algorytmu szybkiego sprawdzania:

Rsync znajduje pliki, które należy przesłać przy użyciu algorytmu „szybkiej kontroli” (domyślnie), który wyszukuje pliki, które zmieniły rozmiar lub czas ostatniej modyfikacji. Wszelkie zmiany innych zachowanych atrybutów (zgodnie z żądaniem opcji) są wprowadzane bezpośrednio do pliku docelowego, gdy szybkie sprawdzenie wskazuje, że dane pliku nie muszą być aktualizowane.

Jest to często w porządku w większości aplikacji. Jest szybszy niż alternatywna metoda, która oblicza sumę kontrolną dla każdego pliku. Ta druga metoda gwarantuje śledzenie różnic, które mogą prześlizgnąć się po pierwszej metodzie.

W każdym razie rsyncnie przechowuje wielu kopii plików, jest to gruba kopiarka / synchronizator plików utrzymujący jeden katalog zsynchronizowany z innym zgodnie z podanymi opcjami.

Metoda sumy kontrolnej

Jeśli jesteś ciekawy, oto przełączanie, którego używam rsyncdo wykonania tego rodzaju synchronizacji:

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

Generuje to ten typ wyniku:

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 
slm
źródło