Как мне синхронизировать конфигурации и данные между компьютерами?

Представьте, у меня есть три компьютера с Ubuntu home, laptop, beach-house, На всех них установлена ​​одна и та же версия Ubuntu, 10.04, и они постоянно обновляются в репозиториях.

я использую f-spot, thunderbird, а также google-chrome на всех компьютерах. Есть ли способ синхронизировать между собой данные и конфигурацию, не требуя постоянного подключения для нормального (несинхронного) использования?

Например, они должны использоваться без подключения к сети, поэтому что-то вроде NFS не будет работать.

Идеальное решение не требует ручных действий для запуска процесса синхронизации.

7 ответов

Приложения, такие как f-spot, thunderbird и google-chrome, используют некоторую форму двоичной базы данных для хранения своих данных. Попытка синхронизировать подобные вещи, когда есть возможность, что одно и то же приложение может одновременно получить доступ к файлу или изменить его, может оказаться очень грязной.

Вместо этого вы хотите искать решения для конкретного приложения.

  • С Thunderbird, я бы сказал, использовать IMAP. Если у вас его нет, GMail его поддерживает. Вы могли бы, чтобы Thunderbird загрузил всю вашу электронную почту туда, или еще лучше, чтобы GMail извлек электронную почту из других ваших учетных записей. Вы также получаете довольно приличную веб-почту и отличный спам-фильтр бесплатно.

  • Firefox имеет (среди прочего) Firefox Sync.

  • Chrome имеет встроенную функцию синхронизации, описанную здесь.

  • F-Spot жестче. Возможно, рассмотрите что-то для синхронизации файлов, но не базу данных. Это будет означать, что вам нужно будет постоянно искать новые файлы, но только если вам нужно использовать F-Spot на каждом компьютере.

    Вы можете ограничиться использованием F-Spot на одном компьютере и простым доступом к файлам на других. База данных F-Spot является самой хрупкой, поэтому будьте осторожны, если вы делитесь файлом базы данных.

Для синхронизации данных, таких как документы, используйте UbuntuOne или DropBox. Я действительно могу рекомендовать последнее. Это предполагает, что вы не против хранить свои данные в дата-центре компании или в облаке. Я не уверен, что хочу поделиться вашей музыкальной коллекцией через Интернет. Мое сетевое соединение недостаточно быстрое, чтобы разрешить это, поэтому я бы пошел с ручным копированием или использованием rsync регулярно.

Для конфигурации есть два разных случая: приложения, которые используют обычные текстовые файлы в качестве конфигурации, и приложения, которые используют gconf, базу данных или что-то нестандартное. Для первого вы можете хранить точечные файлы (например, ~/.vim/, ~/.zshrc) в подпапке папки Dropbox (или UbuntuOne), а затем вставьте символическую ссылку обратно в каталог $HOME. Это хорошо работает.

Что касается приложений, о которых вы упоминаете, то похоже, что ни одно из них не использует простые текстовые файлы в качестве конфигурации. По сути, это означает, что вы не можете эффективно их синхронизировать. Причина в том, что в случае возникновения конфликта вы не сможете его разрешить. Кроме того, некоторые части каталога конфигурации, такие как файлы кэша, должны быть специфичными для системы или иным образом не подходящими для синхронизации. В этих случаях я говорю, что не беспокойтесь о синхронизации, а просто скопируйте каталог конфигурации один раз. Однако есть исключение: приложения, которые изначально поддерживают совместное использование конфигурации на нескольких компьютерах. Firefox может сделать это, и последние версии Google Chrome могут хранить, по крайней мере, некоторые части конфигурации в вашем профиле Google (проверьте ваши предпочтения). Я не уверен, что совместное использование плагинов / расширений поддерживается, но это функция, над которой ведется работа.

XMarks может синхронизировать ваши закладки, пароли и открытые вкладки между Firefox и Chrome (и несколькими другими) на разных компьютерах.

DropBox для F-Spot.

Для Google Chrome включение синхронизации будет синхронизировать ваши закладки. В более новых версиях он позволяет синхронизировать автозаполнение, закладки, расширения, настройки и темы.

Регулярно ли вы работаете на всех трех системах, много ли данных меняете на всех? Если нет, то есть ли причина, по которой rsync при входе в систему и другой при выходе из системы не сработает? Возможно, не идеальное решение, но адекватное...

При входе в систему:

rsync -avz -e ssh remote1:~/.thunderbird/ ~/.thunderbird/
rsync -avz -e ssh remote2:~/.thunderbird/ ~/.thunderbird/

На выходе:

rsync -avz -e ssh ~/.thunderbird/ remote1:~/.thunderbird/
rsync -avz -e ssh ~/.thunderbird/ remote2:~/.thunderbird/

где remote1 а также remote2 в каких двух системах вы не сидите?

Вы можете использовать скрипт запуска, который синхронизирует (с rsync) необходимые файлы, если сеть работает. Следовательно, вы можете использовать upstart для запуска сценария и использовать его в качестве события готовности к сети.

В качестве альтернативы, возможно, можно было бы использовать Ubuntu-one для синхронизации рассматриваемых файлов.

Хорхе Кастро говорит, что "в более новых версиях" Chrome позволит вам синхронизировать историю. У меня есть последние; Я не вижу это как вариант. Поскольку эта функция очень дорога моему сердцу, пожалуйста, дайте мне знать, где вы увидели эту информацию.

Или вы имели в виду "будущие версии"?

Другие вопросы по тегам