Основная команда rsync для бит-идентичных копий


16

Насколько я понимаю, следующая команда:

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

Это все, что мне нужно для создания простой синхронизации файлов из одного места в другое? Или приведенная выше команда делает что-то еще в фоновом режиме, о котором я не знаю? Например, создает ли он какое-то управление версиями, где я могу указать прошедшее время, чтобы получить файлы, как, где были в переданном?

Это функция, которую я не хочу включать на данном этапе. Все, что я хочу, это бит-идентичные копии файлов из одного местоположения в другое. Могу ли я избавиться от любого из этих параметров или мне нужно добавить дополнительные параметры, чтобы сделать копии бит-идентичными без контроля версий? По сути, я не хочу создавать резервные копии, как система резервного копирования Mac Time Machine создает резервные копии.

Ответы:


16

Rsync не делает никаких версий и не хранит историю, если не указаны такие параметры, как --backup. Существуют инструменты резервного копирования, которые используют rsync, но сам rsync не является инструментом резервного копирования, поскольку четыре колеса делают автомобиль. Rsync просто обрабатывает синхронизацию.

Относительно опций, которые вы использовали или можете использовать:

  • -aозначает «копировать почти все» (рекурсивное копирование каталогов, копирование символических ссылок как таковых, сохранение всех метаданных и т. д.). Используйте эту опцию, если вы не делаете что-то необычное.
  • В дополнение к этому -aвы можете захотеть использовать -Hдля сохранения жестких ссылок, -Aдля сохранения ACL ( -aтолько традиционные разрешения Unix) или -Xдля сохранения расширенных атрибутов.
  • -rуже включен в -a.
  • -v значит многословно.
  • -z бесполезен для локальной копии.
  • --delete удаляет файлы в месте назначения, которых нет в источнике.

Так что это основная команда, чтобы сделать назначение идентичным источнику (отсутствие жестких ссылок, списков ACL и расширенных атрибутов):

rsync -a --delete SOURCE/ DESTINATION/

5

Я обычно использую команду из этого ответа . Преимущество состоит в том, что он также сохраняет расширенные атрибуты и ACL.

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

Варианты:

-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

Эта команда должна быть всем, что вам нужно. rsyncпо умолчанию используется так называемый алгоритм быстрой проверки:

Rsync находит файлы, которые необходимо передать, используя алгоритм «быстрой проверки» (по умолчанию), который ищет файлы, которые изменились в размере или в момент последнего изменения. Любые изменения в других сохраненных атрибутах (в соответствии с параметрами) вносятся в файл назначения непосредственно, когда быстрая проверка показывает, что данные файла не нужно обновлять.

Это часто хорошо в большинстве приложений. Это быстрее, чем альтернативный метод, который вычисляет контрольную сумму для каждого файла. Этот второй метод гарантирует отслеживание различий, которые могут ускользнуть при первом методе.

В любом случае rsyncне хранит несколько копий файлов, это общий копировщик / синхронизатор файлов, который синхронизирует один каталог с другим в соответствии с заданными вами параметрами.

Метод контрольной суммы

Если вам интересно, вот переключение, которое я использую rsyncдля выполнения этого типа синхронизации:

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

Это генерирует этот тип вывода:

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 
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.