Как синхронизировать файлы / данные между двумя компьютерами в домашней сети?

11

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

Поэтому я хочу иметь решение для синхронизации всех данных в домашних папках моего ноутбука и рабочего стола. Я могу подключить их с помощью кросс-кабеля время от времени.

Я не хочу использовать Ubuntu One или Dropbox (файлы большие, и нет необходимости использовать Интернет, когда оба находятся в домашней сети).

Гаурав Бутола
источник
Dropbox также предлагает сетевую синхронизацию, так что, возможно, это не обязательно неправильный инструмент.
Турбо

Ответы:

8

Для небольшого набора файлов я бы предложил Dropbox или Ubuntu One , но кажется, что вы хотите синхронизировать свою музыкальную коллекцию между компьютерами, и ни один из них не подходит для этого по двум причинам:

  • Они оба синхронизируются с Интернетом, а это означает, что большие коллекции файлов займут много времени, чтобы загрузить и загрузить
  • Они предлагают ограниченное количество места (с возможностью покупки большего количества), что означает, что для большой коллекции файлов вам может понадобиться много денег

Унисон , который я использую для локальной репликации, не имеет ни одного из этих ограничений (по сути). Вы можете синхронизировать по локальной сети, что означает, что это быстро (вы также можете синхронизировать по Интернету, если хотите), и можете синхронизировать столько, сколько хотите - только в зависимости от доступного дискового пространства и пропускной способности. Unison имеет как графический интерфейс, так и интерфейс терминала, что означает, что вы можете использовать его на своем рабочем столе и на сервере одинаково. В вики Ubuntu есть хорошее руководство, на которое вы можете обратиться, если решите использовать Unison.

Iain Lane
источник
1
Это именно то, что я ищу, но в этом есть проблема imgur.com/Apqbq.png У других людей такая же проблема была и с унисон. Вы знаете решение?
Гаурав Бутола
1
Хм, я сам этого не видел, но обнаружил следующую ошибку Debian, за которой вы, возможно, захотите следить: bugs.debian.org/cgi-bin/bugreport.cgi?bug=252336 - звучит как проблема с программа прерывается. Попробуйте удалить файл, который он упоминает, и попробуйте еще раз. Если он постоянен, то вам может повезти с версией для командной строки (это та, которую я использую). Извините, я не могу помочь.
Iain Lane
Спасибо за вашу помощь. Это именно то, что я хотел. Это действительно отличный инструмент, я синхронизирую свои данные через SSH, используя unison.
Гаурав Бутола
7

Лучший инструмент для этого - инструмент командной строки «Rsync». Если вам нужен графический интерфейс, попробуйте Unison или LuckyBackup, которые основаны на концепции Rsync. Unison и LuckyBackup находятся в репозиториях.

Примером rsync может быть:

rsync -vxtr / home / scaine / Картинки / / home / OtherUser / Картинки /

... который синхронизировал бы мой каталог изображений с каталогом изображений другого пользователя. Параметры, которые я указал, проверят любые копии, сохранят временные метки / разрешения во время копирования и будут проходить через подкаталоги, где они найдены. Сделайте "man rsync" для большего количества вариантов.

Что касается соединения ваших ПК вместе - либо поместите их в коммутатор / концентратор, либо используйте перекрестный кабель, а затем поделитесь каталогами через samba.

РЕДАКТИРОВАТЬ: некоторые хорошие моменты, чтобы сделать, если цель состоит в том, чтобы "зеркало" двух компьютеров. Эта команда будет только «добавлять» файлы из источника в место назначения. Если вам нужно удалить, вам также понадобится опция -delete.

При расследовании выясняется, что Rsync не очень хорошо справляется с зеркалированием. Смотрите это, чтобы понять, что вы, вероятно, найдете более старые файлы, перезаписывающие младшие файлы во время этого обновления! Хуже того, даже если вы включите опцию -update и предотвратите это, он не будет «обновлять» более старый файл с более молодым - он просто «пропустит» его. Вряд ли идеал.

Наконец, для выполнения двухсторонней синхронизации вам нужно будет выполнить ту же команду, но в обратном направлении: источник / назначение. Конечно, сейчас это ограниченное использование, поскольку ваша первая команда (при условии, что вы использовали эту опцию -delete) удалит любой файл в месте назначения, которого не было в источнике. Unison хорошо справляется с двусторонней синхронизацией по памяти.

Если вы серьезно пытаетесь синхронизировать несколько правок, то решение Dropbox - лучший путь вперед. Если вы можете по-другому взглянуть на UbuntuOne или Dropbox, симлинкинг может быть решением - только символическую ссылку на папку с вашими документами, скажем, сохраняя при этом картинки и музыку в One / Dropbox и используя это решение rsync / unison для больших вещей?

Scaine
источник
Я синхронизировал бы весь / дом обоих, было бы правильно бежать? rsync -vxtr / home / user1 / home / user2 будет ли выполняться двусторонняя синхронизация? Собирается ли сохранить последнюю отредактированную копию документа или просто игнорировать файл, если он существует?
Гаурав Бутола
Смотрите мои правки на оригинальный вопрос.
Scaine
1

Пара альтернатив на основе графического интерфейса, если вы не хотите или не хотите использовать терминал

grsync как имя подразумевает базовый интерфейс для rsync.

Унисон Унисон использует больше альтернативных бэкендов, grsyncно кроме этого они делают то же самое

Вы можете установить их из Центра программного обеспечения или используя apt-get

Аллан
источник
0

Простой ответ:

rsync -vzu user@ip.address:/remote/dir/*  /local/dir

Параметр -u сравнивает даты и переносит их только в том случае, если целевая дата старше исходной.

-v означает многословный, -z означает использовать сжатие.

Ян Кинг Инь
источник