Rsync, который обрабатывает перемещения разумно

Можно передать tar по каналу к команде разделения:

tar cvzf - dir/ | split --bytes=200MB - sda1.backup.tar.gz.

На некоторых *отклоняют системы (как OS X), можно получить следующую ошибку:

split: illegal option -- -

В этом случае попробуйте это (отметьте -b 200m):

tar cvzf - dir/ | split -b 200m - sda1.backup.tar.gz.

Если Вы, оказывается, пытаетесь разделить файл для установки на FAT32 отформатированному использованию диска предел байта 4294967295. Например:

tar cvzf - /Applications/Install\ macOS\ Sierra.app/ | \
split -b 4294967295 - /Volumes/UNTITLED/install_macos_sierra.tgz.
10
26.11.2013, 14:53
5 ответов

Необходимо смотреть на rdiff-резервное-копирование, которое это делает rsync внизу, но с дополнительной аналитикой, которой Вы требуете (и она делает возрастающие резервные копии способными к откату, но можно настроить для выключения этого).

Последний выпуск стар (2009), но это - знак устойчивости.

6
27.01.2020, 20:02

Унисон делает то, что Вы хотите, но только для удаленной синхронизации. Попытайтесь использовать ssh://localhost/path/to/dir как один из корней.

Унисон действительно основывает свои решения о содержании файла, он не отслеживает inode числа.

3
27.01.2020, 20:02
[1173135]Вы можете обрабатывать перемещенные и переименованные файлы с rsync, если файловые системы на исходный и целевой каталог имеют поддержку жестких ссылок. Идея заключается в том, чтобы позволить rsync реконструировать жесткие ссылки до реальной передачи. Вы можете найти хорошее объяснение [1173565]здесь

В итоге мы получили простое решение, которое создало скрытое дерево жестких ссылок внутри исходной/целевой директории, основной скрипт может быть таким:

У меня есть пример скрипта на [1173567]GitHub[1173568]. Но я советую сделать большое количество тестов перед использованием этого метода на производстве.[1173140].

1
27.01.2020, 20:02

Если вы хотите синхронизировать файлы между несколькими машины, то вы можете просто использовать централизованную систему контроля версий, такую ​​как Subversion (или FSVS, которая использует SVN в качестве бэкэнда). Приятно то, что все в вашем / home (что вы добавляете в систему управления версиями) затем версируется и может быть легко синхронизировано с другими машинами или откатано.

0
27.01.2020, 20:02

lsyncd также обрабатывает перемещенные файлы с поведением rsync + ssh, хотя и с некоторыми ошибками (я получаю около 15% перемещений, обрабатываемых как удаление / копирование, но еще предстоит выяснить Зачем). В большинстве случаев это работает.

0
27.01.2020, 20:02

Теги

Похожие вопросы