Сравните файлы / папки на разных серверах [закрыто]

У нас есть два сервера Unix, расположенных в двух странах. На этих серверах хранится наш репозиторий программного обеспечения (скрипты, двоичные файлы, документы и т. Д.). Я ищу простой способ поддерживать эти серверы в идеальной синхронизации с помощью сценария. rsync и nfs не подходят.

Я хотел бы записать список server1 и server2 (вместе с файлами + папками), а затем сравнить их с помощью сценария, чтобы затем решить, какие файлы копировать.

-1
задан 4 October 2014 в 21:39
2 ответа

Если есть третья машина, выступающая в роли посредника, вы можете написать сценарий, в котором вытаскиваете файлы (используя SCP или что-то в этом роде) и вытаскиваете метаданные (удаленно вызывая команду "stat") и принимаете решение, а затем нажимаете, какая из версий более "права" на "проигрышную" машину. Не красиво, но это сделает работу.

1
ответ дан 5 December 2019 в 19:54

Алгоритм rsync можно выполнить вручную. Библиотека librsync включает в себя инструмент rdiff CLI (документация), который просто обертывает функции librsync, чтобы сделать их пригодными для использования вручную.

Эффективно передать файл из A в B можно следующим образом:

  1. В машине B создайте файл "подписи", который описывает то, что уже есть

  2. В машине A используйте файл подписи и оригинальный источник, чтобы создать "патч" файл, содержащий инструкции и данные для преобразования файла в B, чтобы закончить с файлом в C.

  3. Вернитесь в машину B, примените патч, и он преобразует файл, используемый в качестве ссылки, в 'оригинальный' файл, сканируемый на машине A.

0
ответ дан 5 December 2019 в 19:54

Теги

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