Назад | Перейти на главную страницу

Сравните и скопируйте отсутствующие файлы из идентичного каталога на удаленном сервере

У меня есть сервер разработки, на котором я хочу синхронизировать определенные каталоги данных с действующим сервером. Любые файлы в этих каталогах, которые существуют на живом сервере, но не на сервере разработки, мне нужно скопировать.

Поскольку меня не волнует синхронизация с разработчиками и нет никаких опасений по поводу перезаписи данных на Dev, я мог просто скопируйте весь каталог с помощью SCP. Проблема в том, что эта папка ОГРОМНА (несколько ГБ), и я хочу синхронизировать ее каждую ночь. Это никогда не закончится вовремя.

Какой самый простой / лучший способ (через SSH) синхронизировать / скопировать отсутствующие файлы из удаленного каталога в локальный каталог?

Примечание: я бы предпочитаю не устанавливать никаких новых / нестандартных инструментов, если я могу помочь; Я также ищу что-то, что я могу настроить / запустить довольно быстро и легко, без излишней суеты или скриптинга! :)

Вставьте rsync, тренер. Это было сделано для этой игры.

Он должен делать в значительной степени именно то, что вам нужно; большие файлы будут передавать только измененные части, сравнения хешей выполняются, чтобы вообще избежать передачи неизмененных файлов. Вам понадобится сценарий, чтобы пробить его через туннель ssh, но это должно быть тривиально. Он уже должен быть установлен на большинстве нормальных систем Linux, поэтому не нужно устанавливать дополнительные вещи.

Я должен согласиться с Шейном. rsync. в зависимости от времени, необходимого для синхронизации папок, и объема доступного места для хранения вы можете сохранить имя папки и имя папки.new, тогда вы можете синхронизировать имя папки.new несколько раз в день. Когда придет время «жить», вы можете просто скопировать файлы из новой папки в живую папку с помощью cp или локального rsync.

изучите параметры rsycn, поскольку его можно настроить для более быстрой обработки больших файлов. Также, если вы перемещаете много маленьких файлов, вы можете создать .tar /.tar.gz перед их перемещением.