Привет всем!
Подскажите, какие есть альтернативы для rsync
в плане синхронизации большого количества файлов с большим количеством жёстких ссылок на удалённый компьютер с доступом по ssh
?
У меня есть локальная резервная копия рабочих данных. Точнее можно сказать, это несколько снимков по датам, которые создаются с помощью команды rsync
и опции --link-dest=
. Т.е. за счёт использования жёстких ссылок, занимаемое место ровняется объёму одной копии, плюс разницы между копиями, но при этом я получаю несколько снимков состояния в разное время. На данный момент хранится 4 копии, за 4 дня, но это не суть.
Теперь я это хочу синхронизировать на удалённый компьютер по ssh
. Но с rsync
есть проблема, т.к. опция --hard-links
работает только в рамках одной сессии синхронизации, про что написано в мануале: Note that rsync can only detect hard links between files that are inside the transfer set
. В моём случае это не вариант, т.к. объём данных достаточно большой, и интернет соединение точно будет разорвано ещё до передачи всех данных. Да и в рамках одной сессии это работает недостаточно надёжно, о чём написано, например, тут: https://serverfault.com/questions/363670/rsync-avzhp-follows-hardlinks-instead-of-copying-them-as-hardlinks (есть некоторый лимит отслеживаемых ссылок, после которого перестаёт работать) Т.е. связанность распадается и я получаю в четыре раза больше передаваемых и хранимых данных. Это очень нехорошо, т.к. на целевом сервере ограничен трафик и место.
Ещё хочу уточнить, что резервную копию я делаю не непосредственно с локальных данных, а через gocryptfs
в реверсивном режиме. Т.е. локальные данные у меня доступны как есть, а в точке монтирования gocryptfs
они представлены в зашифрованном виде. Однако, насколько я могу судить, проблема не в gocryptfs
, т.к. stat
для разных путей, что ведут к одним и тем же данным, показывает точно один и тот же inode
. Получается, что проблема именно в rsync
.
Чем бы его заменить?