Вопрос или проблема
Мне нужен совет по синхронизации директорий между двумя ноутбуками с 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 может стать подходящей основой для создания общего каталога. Эти инструменты помогут вам значительно улучшить производительность и организацию рабочего процесса.