Короче говоря , я хотел, чтобы локальная папка синхронизировалась с папкой на удаленном сервере.
Долгая история :
У меня есть папка, master
где я храню кучу данных. Эти данные организованы в папки, содержащие фактические файлы text/json. Предположим , master
содержит папки с именами folder1
, folder2
и т. д. Происходит следующее: master
обновляются новые данные, содержащиеся в folderi
папке ith
. Эти новые папки можно добавить в любое время. Я мог бы вручную scp
(как я был) и отправить все данные на свой компьютер. Однако делать это крайне утомительно. В идеале я хотел бы иметь возможность использовать что-то вроде того, git
где программа сама по себе фигурируетто, что на самом деле нуждается в обновлении. Загвоздка git в том, что он хранит данные в облаке и в системе контроля версий. Я не (полностью) против хранения вещей в облаке, но контроль версий не требуется, однако в идеале я отправляю данные только себе (к сожалению, github устанавливает квоты на хранение данных, поэтому я не могу это использовать).
Я использовал scp -r user@loc:/loc/master .
для отправки всех своих данных, но кажется, что на самом деле он не проверяет, какие данные у меня уже есть, а просто продолжает и повторно отправляет все. Это действительно занимает много времени, потому что алгоритм должен работать в порядке добавления, а не в истории содержимого master
. Есть ли у кого-нибудь программное обеспечение/инструмент/библиотека и т. д., которые могут легко работать на терминале для обновления моего mater
каталога? Требования к идее:
master
) папку при обновлении/изменении в папке, а не во всей истории или во всем содержимом.master
папку, и она отправляет только то, что нужно обновить (по сути, как git, но без контроля версии)В идеале синхронизация с удаленным файлом должна быть бесшовной.
Я думал об использовании Dropbox в своих учреждениях, что, по сути, означает, что у меня есть место для хранения, однако я не уверен на 100%, как лучше всего настроить такую автоматическую синхронизацию с Dropbox только с помощью терминала.
Не уверен, что это будет проблемой, но некоторые из этих файлов/данных генерируются скриптами. Не уверен, что Dropbox будет, но если он сходит с ума в середине выполнения моих файлов, потому что пытается синхронизироваться, это будет очень раздражающе (или если он решит объявить конфликты слияния во время выполнения, что также будет очень раздражать). По этим причинам я не был уверен, что было бы плохой идеей использовать Dropbox, но на самом деле это может быть просто прекрасно, если он не ведет себя странно. Если он без проблем синхронизируется, это круто, но если мне нужно указывать только изредка (только каждый раз, когда происходит изменение содержимогоmaster
), что он должен обновиться из-за новой папки, это тоже круто. Я просто беспокоюсь о странной проблеме синхронизации, которая может возникнуть, когда файл на самом деле записывается ... может быть, Dropbox может это сделать, но я не знаю, как это сделать.
Система должна работать с файловыми системами Unix. По сути, я использую локально OS X и удаленно какой-то Linux.
Я рекомендую lsyncd для этой цели. Он отслеживает ваш локальный каталог на наличие новых файлов, а затем использует rsync
их для передачи данных в место назначения. rsync
выполняет добавочное резервное копирование , что означает, что он передает только файлы, которые изменились между источником и местом назначения. Он может работать в режиме демона в фоновом режиме. Я использую его ежедневно для синхронизации локального каталога с удаленным сервером, и он отлично работает:
$ lsyncd -rsync /media/data/music /mnt/r/music
Я использую только его, Linux
но он также поддерживает MacOS
.