Debian

Как использовать Unison для синхронизации файлов между серверами

Как использовать Unison для синхронизации файлов между серверами
Из этого туториала Вы узнаете, как настроить и использовать инструмент синхронизации файлов Unison в системах Debian. Используя Unison, вы можете синхронизировать файлы между двумя разными дисками или каталогами в одной или двух других системах по сети.

Что такое унисон?

Технология Unison, разработанная Бенджамином С. Пирсом по лицензии GPL, позволяет пользователям синхронизировать два экземпляра одного файла в одной системе, но на разных дисках или в двух других системах.

Unison позволяет сохранять обновленную и идентичную версию того же файла или каталога. Его можно использовать в самых разных контекстах, таких как SSH, обеспечивая безопасную передачу данных между устройствами или каталогами.

Инструмент Unison является кроссплатформенным, позволяя пользователям синхронизировать файлы и каталоги между системами, работающими с одной или разными операционными системами. Например, вы можете синхронизировать файлы из системы Linux в систему BSD. Благодаря своим функциям безопасности Unison синхронизирует файлы и каталоги и применяет права владения и разрешения в обеих системах.

Инструмент Unison разработан с учетом требований безопасности и может выдерживать сбои, когда между точками синхронизации происходят прерывания. Если Unison обнаруживает конфликты файлов и каталогов, он сообщает о существующих конфликтах и ​​позволяет пользователям выбрать, какую версию файлов следует применить.

Unison может работать с медленными сетями или поддерживать их, что делает его очень эффективным инструментом для использования полосы пропускания. Он синхронизирует только те части и каталоги, которые изменились, что предотвращает тяжелую нагрузку и очень легко и быстро обновляет процесс синхронизации.

Несмотря на свой основной контекст использования, Unison - мощный инструмент, который можно модифицировать для создания широкого спектра вариантов использования.

В этом руководстве будет рассказано, как установить и настроить систему синхронизации файлов Unison в Debian 10.

Как установить Unison на Debian 10

Унисон - популярный инструмент; из-за этого он доступен в официальных репозиториях основных дистрибутивов Linux.

Чтобы установить версию Unison для командной строки в Debian, начните обновление системы:

sudo apt-get update && sudo apt-get upgrade

Затем используйте простую команду apt to для установки инструмента.

sudo apt-get install unison -y

Если в вашей системе установлена ​​среда рабочего стола и вы предпочитаете версию инструмента с графическим интерфейсом, установите unison-gtk с помощью команды:

sudo apt-get install unison-gtk

ПРИМЕЧАНИЕ: Убедитесь, что вы установили Unison в обеих версиях систем, между которыми вы хотите синхронизировать файлы. Для совместимости и минимизации вероятности ошибок лучше иметь одну и ту же версию Unison в обеих системах.

Как синхронизировать файлы с Unison

Unison предоставляет нам способы синхронизации файлов и каталогов между локальными и удаленными машинами, используя прямые подключения к сокетам и SSH. Поскольку мы выполняем синхронизацию между двумя серверами Debian, мы пропустим синхронизацию локальной машины.

Unison Remote и удаленная синхронизация через SSH

Для синхронизации файлов и каталогов между удаленными машинами вам потребуется установить Unison в обеих системах, иметь SSH-доступ как к системам, так и к их IP-адресам.

Вы также можете использовать свой локальный компьютер в качестве одного сервера, а удаленное устройство - в качестве другого сервера.

Первый шаг - создать закрытый и открытый ключи на удаленном сервере1.

ssh-keygen -t rsa
Создание пары открытого / закрытого ключей rsa.
Введите файл, в котором нужно сохранить ключ (/ home / csalem /.ssh / id_rsa):
Создан каталог '/ home / csalem /.ssh '.
Введите кодовую фразу (пусто, если кодовая фраза отсутствует):
Введите ту же парольную фразу еще раз:
Ваша идентификация сохранена в / home / csalem /.ssh / id_rsa.
Ваш открытый ключ был сохранен в / home / csalem /.ssh / id_rsa.паб.
Ключевой отпечаток пальца:
SHA256: 4p5YuEBEa5lrINzqPgwHRVhSS0TNlIIl70A0q2MFcS8 csalem @ Debian-PC
Произвольное художественное изображение ключа:
+---[RSA 2048]----+
| + / @ =… |
| = * O == |
| ++ OE . |
| + * o… |
| о + = . S |
|++. о . |
| оо… о |
|.о . знак равно . |
|… O o |
+----[SHA256]-----+

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

Затем скопируйте ключ с server1 на server2 с помощью команды:

SSH-копия-идентификатор 192.168.0.201

Теперь, когда у вас настроен SSH в обеих системах, вы можете запустить Unison для синхронизации файлов и каталогов.

Давайте протестируем использование Unison на обоих серверах, создав каталог, который мы будем синхронизировать на server1:

mkdir -p / dir1

На server2 создайте каталог, как указано выше

mkdir -p / dir2

Как уже упоминалось, Unison уважает разрешения пользователей. Следовательно, лучше всего изменить разрешения и владельца в обоих каталогах, чтобы оба каталога имели права на чтение и запись.

Затем добавьте все данные, которые вы хотите синхронизировать между серверами в dir1. Например, добавить несколько zip-файлов.

sudo mv ~ / Документы.zip / dir1

Имея файлы, которые мы хотим синхронизировать в правильном каталоге, запустите команду unison для синхронизации с первого сервера как:

унисон / dir1 ssh: // 192.168.0.201 // dir2

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

Нажмите Enter, чтобы начать процесс синхронизации. После завершения процесса синхронизации перейдите на server2, перейдите к dir2 и перечислите содержимое каталога как:

cd / dir2 && ls -la
-rw-r - r-- 1 root root 436 5 января 12:57 Документы.застегивать

Изменение конфигурации Unison

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

Используйте команду ниже, чтобы отредактировать файл конфигурации по умолчанию:

sudo vi ~ /.унисон / по умолчанию.прф

В файл добавьте следующие строки:

auto = true
партия = правда

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

Настройка Unison Cronjob

Можно с уверенностью сказать, что программисты очень не любят делать что-то вручную, особенно когда есть возможность автоматизировать, как здесь. Мы можем настроить задание cron для Unison для автоматического выполнения синхронизации.

В server1 создайте простой сценарий bash для запуска команды unison как:

sudo touch / usr / bin / unisoncron && sudo vi / usr / bin / unisoncron

В файле начните с shebang и добавьте команду unison sync:

#!/ bin / bash /
унисон / dir1 ssh: // 192.168.0.201 // dir2

Как обычно, сделайте скрипт разрешения на выполнение:

Судо chmod 755 / usr / bin / unisoncron

Теперь отредактируйте файл cronjob с помощью crontab:

sudo crontab -e

Если вы редактируете crontab впервые - надеюсь, это не так - выберите свой редактор и введите следующую строку для синхронизации с Unison каждые 1 час:

* / 60 * * * * / usr / bin / unisoncron &> / dev / null

Вы также можете настроить crontab для запуска в определенное время дня. Вам также не нужно использовать скрипт, и вы можете использовать необработанную команду в crontab.

Заключение

В этом руководстве показано, как установить и настроить Unison в системе Debian для синхронизации файлов и каталогов.

Хотя это краткое руководство может помочь вам начать работу, вы можете узнать больше, используя страницы руководства Unison (страницы руководства) или официальную документацию, используя ресурсы, представленные ниже:

SuperTuxKart для Linux
SuperTuxKart - отличная игра, созданная для того, чтобы бесплатно познакомить вас с Mario Kart в вашей системе Linux. Играть в нее довольно сложно и в...
Учебник Battle for Wesnoth
Битва за Веснот - одна из самых популярных стратегических игр с открытым исходным кодом, в которую вы можете играть сейчас. Эта игра не только очень д...
0 А.D. Руководство
Из множества существующих стратегических игр 0 A.D. удается выделиться как всеобъемлющее название и очень глубокая тактическая игра, несмотря на то, ч...