Вот список вещей, которые потенциально могут решить эту проблему, каждый из которых уравновешивает компромиссы, которые вы должны сделать, по-своему, поэтому вам придется самим выбирать и пробовать сами:
Унисон - как уже упоминалось другими, это выполняется вручную, но очень быстро, надежно и эффективно. Требуется, чтобы обе синхронизируемые машины были включены одновременно. Он имеет приятный пользовательский интерфейс, позволяющий вам справляться с почти неизбежными конфликтами, а также правильно отслеживает и распространяет удаления. Графическое приложение / пакет называется unison-gtk.
OwnCloud - Облачное хранилище запускается на вашем собственном сервере. Вам понадобится машина, чтобы оставить на. Требуется разумное количество настроек. Запускает полноценный веб-сервер Apache 2 и базу данных SqlLite или MySQL на сервере. Работает аналогично Dropbox с настольным клиентом, но сервер находится под вашим контролем. редактирование: OwnCloud недавно претерпел некоторые изменения в том, как выполняется проект, и теперь имеет новый полностью открытый исходный код (то есть, нет корпоративной версии с закрытым исходным кодом) под видом NextCloud (см. это интервью на YouTube с оригинальным разработчиком OwnCloud Больше подробностей).
SparkleShare - использует git для синхронизации файлов. Согласно домашней странице: хорошо для многих небольших файлов, не подходит для большого количества больших файлов, таких как музыка или коллекция фотографий.
Seafile - предоставляет серверный компонент, который вы можете установить на локальный компьютер. Seafile использует модель данных, аналогичную git, для отслеживания изменений. Обеспечивает синхронизацию клиентов для настольных компьютеров, планшетов и смартфонов. Сообщение в блоге, описывающее установку, можно найти по адресу http://openswitch.org/blog/2013/07/18/install-and-configuring-seafile-on-ubuntu-12-dot-04/.
Osync - «... инструмент двунаправленной синхронизации файлов, написанный на bash и основанный на rsync. Он работает с локальными и / или удаленными каталогами через туннели ssh. Он в основном предназначен для запуска в качестве задачи cron» (текст с сайта)
PowerFolder - проект GPL v2 на основе Java. Основной веб-сайт выдвигает коммерческие предложения, поэтому неясно, как использовать предоставленный файл .jar.
Rsync - быстрая и эффективная система, существующая десятилетиями, однако она не сохраняет историю, поэтому вам нужно выбрать направление, чтобы решить, является ли файл новым или удаленным. Доступны графические инструменты, такие как gwRsync .
Lsyncd - отслеживает папки / файлы для запуска репликации rsync
dvcs-autosync - написан на python, использует git для хранения и обмена изменениями между машинами и XMPP для передачи изменений.
git-annex - инструмент командной строки для шунтирования файлов, основанный на git. Здесь есть иллюстративное руководство: http://git-annex.branchable.com/walkthrough/
Тонидо - бесплатная. Предоставляет настольное приложение, которое будет обмениваться файлами с другими устройствами. Также предоставьте коммерческие облачные предложения и подключаемый компьютер TonidoPlug.
BitTorrent Sync (бесплатная) - синхронизация файлов между равноправными узлами на основе BitTorrent. Я не знаю много об этом, потому что я не буду использовать его, потому что он не является открытым исходным кодом и не доверяет ему хранить мои данные в моей локальной сети, не стесняйтесь редактировать этот ответ с лучшей информацией / реальным опытом.
SyncThing - Разработан как альтернатива BitTorrent Sync с открытым исходным кодом. В настоящее время в нем отсутствуют некоторые расширенные функции BitTorrent Sync, такие как ненадежные одноранговые узлы. Он находится в стадии активной разработки.
Коммерческие хостинговые сервисы, такие как dropbox, ubuntu one, google drive, apple iCloud - все это быстро, дешево и удобно, однако все они требуют доверия компании со всеми вашими данными и достаточно быстрого интернет-соединения.
Git / Subversion - используйте систему контроля версий напрямую. Полностью ручной и может быть немного сложным, но популярным подходом для некоторых пользователей, знакомых с этими системами, используя их в качестве инструментов программирования.
CloudFS - синхронизировать всю файловую систему, основанную на кластерной технологии
Монтирование NFS - в основном ваш дом живет на одной машине, и вы получаете к нему доступ по сети, что не подходит для ноутбуков, которые вы берете с собой. Дополнительная информация: http://www.linuxjournal.com/article/4880
Центральный сервер - некоторые решения требуют, чтобы машина была включена постоянно (или, по крайней мере, когда вам нужно синхронизировать), чтобы другие машины синхронизировались с ней. Это может быть одна из ваших существующих машин или отдельная машина, такая как NAS. Следите за увеличением счетов за электроэнергию.
Автоматически / вручную / по расписанию. Лучший способ избежать разрешения конфликтов, когда что-то меняется не только на машине, - это иметь на каждом компьютере программу, которая отслеживает изменения и сразу же синхронизируется, таким образом, вы уменьшаете возможность появления нескольких версии. С ручными процессами вы всегда должны помнить, чтобы запустить синхронизацию.
Удаленный доступ - хотите ли вы синхронизироваться вне вашей локальной сети (также как дома), подумайте о последствиях безопасности для этого.
Безопасность - делает ваши данные зашифрованными в вашей сети или нет, насколько безопасна передача между компьютерами. Что если кто-то захватит ваши данные на ходу, и позже обнаружится, что шифрование имеет недостатки? Кто контролирует сервер, на котором хранятся ваши данные, зашифрованы ли эти данные, можете ли вы доверять третьим сторонам? Нужно ли тыкать в свой роутер, чтобы получить удаленный доступ. Как долго хранятся «удаленные» файлы и связанные метаданные на синхронизированных устройствах и на центральном сервере. Вы синхронизируете между зашифрованным и незашифрованным хранилищем?
Перемещение больших папок - все решения, которые я попробовал, имеют проблему, заключающуюся в том, что когда вы перемещаете / переименовываете файл или папку, синхронизация не понимает этого и загружает все заново как новую, а затем удаляет старую копию. Пожалуйста, помогите, отметив любые вышеупомянутые решения, которые могут справиться с этим (я подозреваю, что решения на основе git делают, поскольку git не страдает от этого из-за адресации на основе контента, которую он использует, но не знаю точно, так как я еще не использовал их).
Емкость диска
Резервные копии - синхронизация не является резервной копией. Удалите важный файл по ошибке, и многие из вышеперечисленного удалят все ваши другие копии. Я рекомендую прочитать статью Мэта Хонана о том, как ее взломали, чтобы понять, что может произойти, если вы, так сказать, положите все свои цифровые яйца в одну цифровую корзину.
Я рекомендую не синхронизировать всю домашнюю папку, а вместо этого выбирать определенные папки для синхронизации, такие как Documents/
и Pictures/
т. Д. Это избавит вас от необходимости сталкиваться с проблемами скорости / производительности / дискового пространства при автоматической синхронизации всего. Это также избавляет от необходимости вести списки исключений.
Поскольку я продолжаю пытаться найти что-то, что работает для меня лично, я постараюсь обновлять этот ответ с полезной информацией. Я собрал информацию из всех других ответов в один полный ответ.