Отдельный (архивный) файл RSync, который меняется каждый раз

Я работаю над утилитой резервного копирования с открытым исходным кодом, которая выполняет резервное копирование файлы и передает их в различные внешние места, такие как Amazon S3, Rackspace Cloud Files, Dropbox и удаленные серверы через протоколы FTP / SFTP / SCP.

Теперь я получил запрос функции для выполнения инкрементных резервных копий (в случае резервных копий) которые производятся, имеют большие размеры и становятся дорогими при передаче и хранении). Я искал, и кто-то упомянул утилиту rsync . Я провел несколько тестов с этим, но не уверен, подходит ли это, поэтому хотел бы услышать мнение любого, кто имеет некоторый опыт работы с rsync .

Позвольте мне кратко рассказать о том, что происходит при резервном копировании сделан. В основном он начнет сбрасывать базы данных, такие как MySQL, PostgreSQL, MongoDB, Redis. Может потребоваться несколько обычных файлов (например, изображений) из файловой системы. Как только все будет готово, он объединит все это в один файл .tar (дополнительно он сожмет и зашифрует его с помощью gzip и openssl ).

Как только это все готово, у нас есть единственный файл, который выглядит так:
mybackup.tar.gz.enc

Теперь я хочу передать этот файл в удаленное место. Цель состоит в том, чтобы уменьшить пропускную способность и стоимость хранения. Так что давайте' Предположим, этот небольшой пакет резервных копий имеет размер 1 ГБ . Поэтому мы используем rsync , чтобы передать это в удаленное место и удалить резервную копию файла локально. Завтра будет сгенерирован новый файл резервной копии, и окажется, что за последние 24 часа было добавлено намного больше данных, и мы создаем новый файл mybackup.tar.gz.enc , и он выглядит так: мы достигли размера 1,2 ГБ .

Теперь мой вопрос: можно ли передать только 200 МБ , которые были добавлены за последние 24 часа? Я попробовал следующую команду:

rsync -vhP --append mybackup.tar.gz.enc backups / mybackup.tar.gz.enc

Результат:

mybackup.tar.gz.enc 1.20G 100 % 36.69MB / s 0:00:46 (xfer # 1, to-check = 0/1)

отправил 200.01M байт
Поэтому мы используем rsync , чтобы передать это в удаленное место и удалить резервную копию файла локально. Завтра будет сгенерирован новый файл резервной копии, и окажется, что за последние 24 часа было добавлено намного больше данных, и мы создаем новый файл mybackup.tar.gz.enc , и он выглядит так: мы достигли размера 1,2 ГБ .

Теперь мой вопрос: можно ли передать только 200 МБ , которые были добавлены за последние 24 часа? Я попробовал следующую команду:

rsync -vhP --append mybackup.tar.gz.enc backups / mybackup.tar.gz.enc

Результат:

mybackup.tar.gz.enc 1.20G 100 % 36.69MB / s 0:00:46 (xfer # 1, to-check = 0/1)

отправил 200.01M байт
Поэтому мы используем rsync , чтобы передать это в удаленное место и удалить резервную копию файла локально. Завтра будет сгенерирован новый файл резервной копии, и окажется, что за последние 24 часа было добавлено намного больше данных, и мы создаем новый файл mybackup.tar.gz.enc , и он выглядит так: мы достигли размера 1,2 ГБ .

Теперь мой вопрос: можно ли передать только 200 МБ , которые были добавлены за последние 24 часа? Я попробовал следующую команду:

rsync -vhP --append mybackup.tar.gz.enc backups / mybackup.tar.gz.enc

Результат:

mybackup.tar.gz.enc 1.20G 100 % 36.69MB / s 0:00:46 (xfer # 1, to-check = 0/1)

отправил 200.01M байт
и оказалось, что за последние 24 часа было добавлено намного больше данных, и мы создали новый файл mybackup.tar.gz.enc , и похоже, что мы подошли к 1.2 Размер ГБ.

Теперь у меня вопрос: можно ли передать только 200 МБ , добавленные за последние 24 часа? Я попробовал следующую команду:

rsync -vhP --append mybackup.tar.gz.enc backups / mybackup.tar.gz.enc

Результат:

mybackup.tar.gz.enc 1.20G 100 % 36.69MB / s 0:00:46 (xfer # 1, to-check = 0/1)

отправил 200.01M байт
и оказалось, что за последние 24 часа было добавлено намного больше данных, и мы создали новый файл mybackup.tar.gz.enc , и похоже, что мы подошли к 1.2 Размер ГБ.

Теперь у меня вопрос: можно ли передать только 200 МБ , добавленные за последние 24 часа? Я попробовал следующую команду:

rsync -vhP --append mybackup.tar.gz.enc backups / mybackup.tar.gz.enc

Результат:

mybackup.tar.gz.enc 1.20G 100 % 36.69MB / s 0:00:46 (xfer # 1, to-check = 0/1)

отправил 200.01M байт
Можно ли передать только 200 МБ , добавленные за последние 24 часа? Я попробовал следующую команду:

rsync -vhP --append mybackup.tar.gz.enc backups / mybackup.tar.gz.enc

Результат:

mybackup.tar.gz.enc 1.20G 100 % 36.69MB / s 0:00:46 (xfer # 1, to-check = 0/1)

отправил 200.01M байт
Можно ли передать только 200 МБ , добавленные за последние 24 часа? Я попробовал следующую команду:

rsync -vhP --append mybackup.tar.gz.enc backups / mybackup.tar.gz.enc

Результат:

mybackup.tar.gz.enc 1.20G 100 % 36.69MB / s 0:00:46 (xfer # 1, to-check = 0/1)

отправил 200.01M байт
получено 849,40K байт
8,14 МБ / сек
общий размер - 1,20 ГБ
ускорение составляет 2,01

Глядя на отправленные 200,01 Мбайт , я бы сказал, что «добавление» данных работает правильно. Теперь мне интересно, были ли перенесены все 1,2 ГБ , чтобы выяснить, сколько и что добавить к существующей резервной копии, или же на самом деле передал только 200 МБ ? Потому что, если он передал все 1,2 ГБ , то я не вижу, насколько это сильно отличается от использования утилиты scp для отдельных больших файлов.

Кроме того, если что я попытаться выполнить возможно, какие флаги вы рекомендуете? Если это невозможно с rsync , можно ли порекомендовать какую-нибудь утилиту вместо этого?

Любые отзывы приветствуются!

6
задан Deduplicator 10 September 2014 в 01:09
поделиться