У меня есть экземпляр EC2 с данными, которые я хочу синхронизировать с подключенным, но удаленным томом в качестве резервной копии.
rsync
похоже, это способ пойти с этим, поэтому в качестве теста я взял свой тестовый файл (файл Postgres pg_dump) и использовал rsync -v
чтобы скопировать его на смонтированный том:
[ec2-user work]$ rsync -v dump.sql.1 ../backup/dump.sql
dump.sql.1
sent 821704315 bytes received 31 bytes 3416650.09 bytes/sec
total size is 821603948 speedup is 1.00
Затем я запустил его снова, ожидая увидеть минимальное количество отправленных / полученных номеров, потому что это будут просто контрольные суммы. Вместо...
[ec2-user work]$ rsync -v dump.sql.1 ../backup/dump.sql
dump.sql.1
sent 821704315 bytes received 31 bytes 3402502.47 bytes/sec
total size is 821603948 speedup is 1.00
Я новичок в rsync
так что, возможно, мне что-то не хватает, но разве идея не заключается в том, что исходный и целевой файлы проверяются на предмет различий, а затем генерируется патч и применяется к месту назначения? Почему при этом не уменьшается количество «отправляемых» данных до размера контрольных сумм?
Немного предыстории, если это актуально:
смонтированный том использует s3fs, установленный с s3fs <bucketname> backup
.
rsync по умолчанию копирует все. Вы можете использовать такие флаги, как -t или -c, чтобы он проверял временные метки файлов и не повторно передавал файлы, временная метка последнего изменения которых не изменилась (-t), или где контрольная сумма все еще та же (-c) . Другой полезный параметр - -a (я всегда использую его), который устанавливает -t и несколько других параметров, полезных для архивирования / резервного копирования.