Эта команда должна быть всем, что вам нужно. 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