Советы по синхронизации каталогов между двумя ноутбуками с Linux?

Вопрос или проблема

Мне нужен совет по синхронизации директорий между двумя ноутбуками с Linux. В настоящее время я использую Google Drive, смонтированный с помощью google-drive-ocamlfuse на обоих устройствах, но это вызывает значительные проблемы с производительностью. Основные операции, такие как cp, mv и даже компиляция, выполняются очень медленно.

Что меня конкретно интересует, так это настройка, при которой каждый ноутбук сохраняет свою локальную копию данных, с основной копией на облачном/NFS сервере. Идеальный инструмент должен автоматически синхронизировать изменения, внесенные на любом из ноутбуков, с основной копией и обновлять соответственно.

Буду признателен за любые предложения по лучшему решению.

Ответ или решение

Синхронизация директорий между двумя ноутбуками на Linux может быть довольно требовательной задачей, особенно если вам важна производительность и надежность работы. Учитывая ваш текущий опыт с Google Drive и проблемы с производительностью, я рекомендую рассмотреть несколько более эффективных решений, которые позволят вам поддерживать актуальные версии файлов на каждом устройстве и в облаке.

1. rsync: проверенный инструмент для синхронизации

Преимущества:

  • Гибкость: rsync позволяет синхронизировать директории на разных устройствах, используя SSH для передачи данных, что обеспечивает безопасность.
  • Эффективность: передает только измененные блоки данных, что сокращает время на синхронизацию.
  • Планирование: можно использовать cron для автоматизации задачи синхронизации.

Пример использования:

rsync -avz --delete /path/to/local/dir user@remote:/path/to/remote/dir

Это команда синхронизирует локальную директорию с удаленной. Ключ --delete удаляет файлы на стороне назначения, если они отсутствуют на стороне источника.

2. Unison: для двусторонней синхронизации

Преимущества:

  • Двусторонняя синхронизация: Unison автоматически синхронизирует изменения с обеих сторон, что экономит время и усилия.
  • Подходит для работы без постоянного интернет-соединения: изменения сохраняются локально и синхронизируются сразу при наличии подключения.

Установка и использование:

sudo apt-get install unison

Запустите команду для синхронизации:

unison /path/to/dir ssh://user@remote/path/to/dir

3. Syncthing: для автоматической синхронизации

Преимущества:

  • Автоматическое обнаружение устройств: Syncthing автоматически находит другие устройства в сети.
  • Пользовательский интерфейс: обеспечивает графический интерфейс и веб-интерфейс для управления синхронизацией.
  • Шифрование: защищает ваши данные через TLS.

Установка:
Сначала добавьте репозиторий:

sudo add-apt-repository ppa:syncthing/ppa
sudo apt-get update
sudo apt-get install syncthing

Запустите Syncthing на обоих устройствах, добавьте каталоги для синхронизации и настройте доступ к необходимым папкам.

4. Использование сетевого файлового хранилища (NFS)

Преимущества:

  • Общий доступ к файлам: создаёт общий доступ к папкам на сервере.
  • Локальные копии: можно настроить монтирование общих папок и синхронизировать через rsync для повышения эффективности.

Настройка NFS:

  • Установите сервер NFS на одном из ноутбуков.
  • Настройте экспорт каталога:
# В файле /etc/exports
/path/to/shared/dir *(rw,sync,no_subtree_check)
  • Перезапустите службу NFS:

    sudo systemctl restart nfs-kernel-server
  • На втором ноутбуке подключите общий ресурс:

    sudo mount -t nfs server-ip:/path/to/shared/dir /path/to/local/mountpoint

Заключение

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

Оцените материал
Добавить комментарий

Капча загружается...