Что такое унисон?
Технология 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-адресам.
Вы также можете использовать свой локальный компьютер в качестве одного сервера, а удаленное устройство - в качестве другого сервера.
- 192.168.0.200 - server1
- 192.168.0.201 - сервер2
Первый шаг - создать закрытый и открытый ключи на удаленном сервере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 (страницы руководства) или официальную документацию, используя ресурсы, представленные ниже:
- https: // www.СНГ.Upenn.edu / ~ bcpierce / unison /
- https: // www.СНГ.Upenn.edu / ~ bcpierce / унисон / скачать / релизы / стабильный / унисон-руководство.html