Ось перелік речей, які потенційно можуть вирішити цю проблему, кожен з них врівноважує компроміси, які ви повинні зробити по-різному, тож вам доведеться робити власний вибір і спробувати все для себе:
Унісон - як зазначають інші, це запускається вручну, але дуже швидко, надійно та ефективно. Потрібно, щоб обидві машини, що синхронізуються, були увімкнені одночасно. Він має приємний інтерфейс користувача, який дозволяє вирішувати майже неминучі конфлікти та правильно відстежувати та розповсюджувати видалення. Графічний додаток / пакет називається unison-gtk.
OwnCloud - хмарний сховище працює на власному сервері. Вам знадобиться машина, щоб залишити її. Потрібна розумна кількість налаштувань. Запускає повний веб-сервер Apache 2 та базу даних SqlLite або MySQL на сервері. Працює аналогічно Dropbox із настільним клієнтом, але сервер знаходиться під вашим контролем. редагувати: нещодавно OwnCloud зазнав деяких змін у тому, як виконується проект, і тепер під виглядом NextCloud є новий повністю відкритий вихідний код (тобто немає закритого видання "підприємство") (див. це інтерв'ю на YouTube з оригінальним розробником OwnCloud для більш детальної інформації).
SparkleShare - використовує git для синхронізації файлів. За даними домашньої сторінки: добре для багатьох менших файлів, не підходить для багатьох великих файлів, таких як музика або колекція фотографій.
Seafile - надає серверний компонент, який можна встановити на локальній машині. Seafile використовує модель даних, аналогічну git, для відстеження змін. Забезпечує синхронізацію клієнтів для настільних ПК, планшетів та смартфонів. Запис у блозі, що описує налаштування, можна знайти на веб-сайті http://openswitch.org/blog/2013/07/18/installing-and-configuring-seafile-on-ubuntu-12-dot-04/
Osync - "... інструмент синхронізації двонаправлених файлів, написаний в bash і заснований на rsync. Він працює в локальних та / або віддалених каталогах через ssh-тунелі. Це, головним чином, націлений на запуск як завдання на cron" (текст із веб-сайту)
PowerFolder - проект на базі Java GPL v2. Основний веб-сайт висуває комерційні пропозиції, тому не зрозуміло, як використовувати наданий файл .jar.
Rsync - швидкий і ефективний і існує вже десятиліттями, проте він не зберігає історію, тому вам потрібно вибрати напрямок, щоб вирішити, чи новий файл видалений чи видалений. Доступні графічні інструменти, такі як gwRsync .
Lsyncd - відстежує папки / файли, щоб викликати реплікацію rsync
dvcs-autosync - написаний python, використовує git для зберігання та обміну змінами між машинами, а XMPP для передачі змін.
git-annex - інструмент командного рядка для шунтування файлів навколо, заснований на git. Тут є наочний посібник: http://git-annex.branchable.com/walkthrough/
Тонідо - безкоштовно. Забезпечує настільний додаток, який надаватиме спільний доступ до файлів іншим пристроям. Також надайте комерційні хмарні пропозиції та підключіть комп'ютер TonidoPlug.
BitTorrent Sync (freeware) - однорангова синхронізація файлів на основі 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/
тощо. Це дозволить уникнути болю, коли змушені мати справу з питаннями швидкості / продуктивності / дискового простору при автоматичній синхронізації всього. Це також уникає необхідності вести списки виключень.
Оскільки я продовжую намагатися знайти щось, що особисто мені подобається, я спробую відповісти на цю відповідь корисною інформацією. Я об'єднав інформацію з усіх інших відповідей в одну повну відповідь.