Синхронизация файлов между компьютерами?

У меня три компьютера (2x OS X и 1x Ubuntu) и планшет Android. Я пытаюсь найти инструмент для автоматической синхронизации файлов между компьютерами и планшетом. Резервные копии обрабатываются отдельно, поэтому нет необходимости в управлении версиями.

Более 100 ГБ файлов должны быть синхронизированы между компьютерами и несколько гигабайт между компьютерами и планшетами. Поэтому такие сервисы, как Dropbox, Google Drive или OneDrive, не очень практичны, так как цена относительно высока. Кроме того, мне не нужна и не нужна облачная синхронизация, поскольку синхронизация такого объема данных через Интернет занимает довольно много времени (и денег, в зависимости от местоположения).

Я успешно использовал Gluster для синхронизации больших файлов между серверами. Он работает на Linux и OS X, но не на Android. Однако он, безусловно , не удобен для пользователя и требует значительного объема ручной настройки.
Google Диск теперь предлагает план подписки на 200 ГБ, поэтому цена может больше не быть проблемой.

Ответы (6)

Bittorrent Sync ( wikipedia ), кажется, подходит довольно хорошо. Он автоматически синхронизирует файлы между устройствами, когда доступно соединение, обрабатывает коллизии, если они происходят, и совместим, среди прочего, с Linux, Android, OS X и Windows. Для этого не требуется наличие центрального сервера (или специального ноутбука).

С другой стороны, это все еще бета-версия, и ее выпуск может быть прекращен. Однако в недавних новостях говорится, что его пользовательская база уже превышает 2 миллиона, поэтому прекращение работы, вероятно, не является самым большим риском.


Мой опыт до сих пор:

  • Кажется, работает на удивление хорошо.
  • Синхронизация с телефоном не всегда работает без ручного запуска приложения. Это может быть и просто мое нетерпение.
  • Активная синхронизация (добавление новых файлов) на телефоне потребляет довольно много заряда батареи. Однако это ожидаемо, поскольку требует больших ресурсов (предотвращение перехода в спящий режим, запись во флэш-память и поддержание активности Wi-Fi). Это была единственная проблема при начальной синхронизации (добавление 10 ГБ фотографий).
  • Производительность через локальную сеть / Wi-Fi хорошая. Легко и постоянно насыщает сеть. Есть варианты ограничения скорости загрузки и скачивания.
  • Часы должны синхронизироваться (относительно хорошо, +-5мин терпимо), иначе синхронизация отказывается работать.
  • Настроить общие папки несложно, но исключить часть содержимого (например, временные файлы) невозможно.
  • Помимо синхронизации домашних компьютеров и телефона, теперь я использую Sync для публикации файлов на своем сервере. Когда я чем-то делюсь, я сохраняю/экспортирую это в синхронизированную папку, и оно автоматически загружается на сервер. Проще/быстрее, чем запускать sftp вручную.
Я бы также добавил, что это работает практически на чем угодно — я довольно успешно запускал сборку Arm на Raspberry Pi, и она будет работать на многих других системах на основе Arm, включая NAS.
Я не уверен, нормально это или нет, но я просто украл ваш ответ и разместил слегка измененную версию на softwarerecs.stackexchange.com/questions/3255 . Есть ли какое-то правило на этот счет? Я могу удалить его, если вы хотите опубликовать его самостоятельно. Ваше здоровье :-)
@NicolasRaoul не знаю - не понимаю, почему вы не могли, особенно когда указываете авторство.
Как Bittorrent Sync разрешает конфликты?
Syncthing — это альтернатива Bittorent Sync с открытым исходным кодом (теперь Resilio).
Это по-прежнему хорошее решение (теперь оно называется « Resilio Sync ») и в 2022 году. ( Бонус : в отличие от Google Диска, Dropbox и др., оно по-прежнему совместимо с версиями, работающими в более старых операционных системах, таких как Mac OS X 10.9 или Windows. Виста/7.)

Вы можете синхронизировать свои устройства через SSH:

  • на машинах Linux и MacOS, используя rsync, и запланировать его через Cron
  • на Android есть, например , FolderSync , который может работать с SSH (и несколькими другими протоколами, включая FTP и пару облачных сервисов, так что он может служить и другим целям). Он имеет собственный планировщик, но с его платной версией также можно управлять через Tasker .

Меню синхронизации папок FolderSync: определение пар папок Папки FolderSync
Скриншоты FolderSync : главная страница, определение пар папок, определенные пары папок (источник: Google Play; щелкните изображения для увеличения вариантов)


Мой личный опыт

Я использую FolderSync на всех своих Android-устройствах, например, для хранения моих резервных копий ( Titanium Backup / AppMonster ) на моем ПК, а также для синхронизации данных моего рабочего журнала. Изначально я столкнулся с некоторыми проблемами с односторонней синхронизацией последнего (точно не помню подробностей); но переход на двустороннюю связь, похоже, решил и их. Встроенный планировщик будит устройство каждые 5 минут, чтобы проверить, не нужно ли что-то сделать, даже если у вас запланировано только одно ежедневное событие — поэтому я отключил его и использую Tasker.для запуска синхронизации. После настройки я иногда даже забываю, что он там есть: работает без сбоев, и всякий раз, когда мне нужно получить доступ к своим данным с ПК, он просто там и актуален (например, при подготовке табеля на основе данных, созданных на устройстве Android) .

О надежности Cron говорить не приходится (ни разу меня не подводил). Я использую rsync на своих машинах с Linux для многих вещей, но в основном однонаправленных; так что опытом от би-ди синхр поделиться не могу. За то, что я с ним синхронизируюсь (а это много), я им очень доволен. Командной строке, возможно, потребуется немного узнать о параметрах и о том, что и когда использовать; Я настроил свои собственные сценарии для специальных целей, поэтому мне не нужно запоминать все параметры.

С помощью git-annex и git-annex-assistant вы можете синхронизировать файлы между всеми этими (и другими) и даже сообщать им такие вещи, как «для этого подмножества файлов убедитесь, что он всегда находится как минимум на двух компьютерах, но не более чем на одном планшете» и другие практически произвольные правила. Это git-annex-assistant«удобная» сторона git-annexутилиты расширения командной строки git, включая Android, веб-интерфейсы и другие интерфейсы. Хотя он еще не может быть полностью стабильным во всех версиях, joeyh активно работает над ним, поэтому со временем он станет еще лучше, особенно по мере того, как все больше людей будут его использовать/тестировать.

(Я сделал ссылку на страницу на кикстартере, хотя помощник уже профинансирован и находится в разработке более года, потому что на нем много ссылок и потрясающих деталей.)

Я использовал его сам (git-приложение, еще не помощник), и это полезный инструмент, но иногда вам нужно думать за углом, чтобы использовать его в полной мере (но тогда вы можете делать с ним что-то даже автор не подумал; например, замена OwnCloud, которая работала еще лучше). Проблем с совместимостью нет, только с тем или иным редким багом. Регрессы случались, но еще реже и обычно быстро устранялись. Разработчик очень общительный.

Я проверю это. Однако поддержка Android не кажется слишком стабильной.
Вы использовали git-annex (-помощник)? Можете ли вы его порекомендовать? Что-нибудь хорошее/плохое? Он активно разрабатывается, возникали ли какие-либо проблемы с обратной совместимостью/регрессии?
В этом решении много движущихся частей, но как только вы заставите их все вращаться, результат будет впечатляюще универсальным. Это, безусловно, решение этой проблемы по принципу «имей свой пирог и съешь его».

Unison — это файловый синхронизатор. Это хорошо для синхронизации файлов между двумя машинами, где файлы могут быть изменены на любой из двух машин. Если ваши требования «rsync, только два способа», то Unison — это именно то, что вам нужно.

Если машин больше двух, используйте схему «звезда»: одна центральная машина, с которой синхронизируются все остальные машины.

Я использовал Unison таким образом с самого начала (в Linux и иногда в Windows) и не видел альтернативы, которая, казалось бы, решает ту же проблему. Распределенные системы контроля версий (Mercurial, Bazaar, Git, …) также могут выполнять синхронизацию файлов в качестве побочного эффекта, но они гораздо более тяжеловесны: они полезны, если вы собираетесь серьезно работать с файлами на каждом сервере. машина.

Unison можно использовать как из командной строки, так и с помощью простого графического интерфейса. Он работает в Linux, OSX и других вариантах Unix, а также в Windows. Для синхронизации с планшетом Android вы можете использовать собственный порт Android (который поставляется с сервером SSH) с дополнительным графическим интерфейсом .

Ну, требование не «rsync, только два пути». Что касается схемы «звезда», для нее требуется центральная машина, которая всегда (или почти всегда) доступна.
@Olli Без звездного узора вам будет трудно избегать конфликтов. Unison предупреждает о конфликтах, но не помогает их решить. Чтобы иметь возможность разрешать конфликты, вы используете программное обеспечение для контроля версий (например , на основе git ), которое является более мощным, но более сложным в использовании.
При использовании шаблона «звезда» будут проблемы с конфликтами, если файлы будут изменены одновременно. Звездный узор никак это не исправляет.
Также git-annex (или git вообще) помогает в решении конфликтов (по сравнению с тем, что делает Unison) только при наличии возможности слияния файлов. Это не относится, например, к изображениям или видео.
Вы использовали Unison для этого? Вы знаете, что это хорошо работает? Можете ли вы его порекомендовать? Как порт на андроид?
@Olli Смотрите мое редактирование. Я не уверен , что такие субъективные рекомендации — это хорошая идея, поскольку они также привлекают зазывал, но ладно, если вы этого хотите, вы это получили.
Мне нравится указывать на этот мета-пост , который, кажется, привлекает довольно много голосов: «Хорошие ответы на этом сайте будут в форме честных отзывов, которые делятся личным опытом с чем-то». опыт важен, потому что в противном случае это просто «я нашел хит Google, в котором говорится, что это хорошее программное обеспечение». Спасибо за обновления.
Я настоятельно рекомендую Termux , так как он содержит полнофункциональный сервер OpenSSH (в отличие от многих приложений SSH-сервера в магазине) и запускает стандартный двоичный файл Unison, скомпилированный для Android .

Я использовал GoodSync ( вики ) для синхронизации огромных каталогов между двумя рабочими столами Windows и одним Ubuntu. Также заявлена ​​поддержка Mac и Android. Что лично мне понравилось:

  • много планирования / включения / исключения каталогов / шаблонов / стратегий конфликтов / иерархических заданий / любых настроек / конфигураций.

  • хорошая визуализация процесса синхронизации

Окно GoodSync с контекстным меню

  • работает (уже очень не плохо для софта синхронизации)

Однако это коммерческое программное обеспечение, и оно недешевое (40 долларов за Mac после 30-дневного пробного периода).

Не знал об этом, спасибо за предложение. Хотя я не заявлял об этом явно, 120 долларов (одна лицензия на устройство) для меня многовато, так как есть бесплатные альтернативы.

Я использую Chronosync уже несколько лет на работе, чтобы синхронизировать свои компьютеры с OS X, и в целом он работает хорошо. В настоящее время он доступен для платформы OS X. Полный список функций можно найти здесь . Вы, безусловно, можете использовать его для синхронизации ваших файлов в Ubuntu, если вы настроите доступ к нему с компьютеров OS X.

Некоторые из основных функций, которые он предоставляет, включают ручную или автоматическую синхронизацию, фильтрацию, специальную обработку файлов, синхронизацию удаления файлов и многие другие функции. И это удивительно дешево — 40 долларов за одну лицензию.

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