Site icon ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)
Воскресенье, 23 ноября, 2025

Как установить Unison File Synchronizer для двусторонней синхронизации файлов в Linux

Как установить Unison File Synchronizer для двусторонней синхронизации файлов в Linux

Синхронизация файлов на нескольких компьютерах — распространённая задача для пользователей Linux. Вы можете использовать как ноутбук, так и настольный компьютер, управлять домашним сервером и VPS или просто нуждаться в дополнительной копии важных файлов.

Для простого резервного копирования хорошо подходят такие инструменты, как rsync и scp, но если вы вносите изменения в обе системы, односторонней синхронизации будет недостаточно, и вы рискуете перезаписать файлы или потерять обновления.

Здесь на помощь приходит Unison File Synchronizer — инструмент двусторонней синхронизации, который сравнивает каталоги на обеих сторонах, обнаруживает изменения и обновляет их, чтобы оба каталога всегда были в актуальном состоянии.

В этой статье вы познакомитесь с основами использования Unison File Synchronizer в Linux.

К концу курса вы будете знать, как:

 

Давайте начнём…

 

Установка Unison в Linux

Вы можете установить Unison либо из репозитория пакетов вашего дистрибутива Linux, либо загрузив стабильную версию. Для большинства пользователей установка из репозитория является самым простым способом.

sudo apt install unison [В Debian, Ubuntu и Mint]
sudo dnf install unison [В RHEL/CentOS/Fedora и Rocky/AlmaLinux]
sudo apk add unison [В Alpine Linux]
sudo pacman -S unison [В Arch Linux]
sudo zypper install unison [В OpenSUSE] 
sudo pkg install unison [В FreeBSD]

 

Если вам нужна версия с графическим интерфейсом, вы можете установить её с помощью следующей команды, но версия с графическим интерфейсом (unison-gtk) доступна только в дистрибутивах на основе Debian.

sudo apt install unison-gtk

 

После установки проверьте версию с помощью:

unison -version

 

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

 

Базовая Локальная Синхронизация

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

Допустим, у вас есть две папки:

 

Чтобы синхронизировать эти папки, выполните команду:

unison ~/Documents/work ~/Backup/work_sync

 

Вот как выглядит эта команда:

 

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

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

 

Синхронизация между удалёнными системами (с использованием SSH)

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

Вы хотите синхронизировать локальную папку ~/Projects с удалённым сервером:

unison ~/Projects ssh://username@server-ip//home/username/Projects

 

Вот как выглядит эта команда:

 

Совет от профи: настройте аутентификацию на основе SSH-ключей, чтобы вам не приходилось каждый раз вводить пароль. Это важно, если вы хотите в дальнейшем автоматизировать задачи синхронизации.

 

Использование профилей для автоматизации

Каждый раз вводить длинные команды Unison может быть утомительно. К счастью, Unison позволяет создавать профили — сохранённые наборы инструкций для повторяющихся задач синхронизации. Профили хранятся в ~/.unison/ с расширением .prf .

Создание нового файла профиля.

nano ~/.unison/work.prf

 

Добавьте следующее содержимое:

root = /home/youruser/Documents/work
root = ssh://username@server-ip//home/username/Documents/work

auto = true
batch = true
prefer = newer

 

Ниже приводится описание каждого варианта:

 

Теперь вы можете просто ввести следующую команду, и Unison будет автоматически использовать ваш профиль. Вам не придётся каждый раз вводить длинные команды.

unison work

 

Запуск непрерывной синхронизации (в режиме реального времени)

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

unison work -repeat watch

 

С помощью этой команды:

 

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

 

Планирование синхронизации с помощью Cron

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

Сначала отредактируйте свой crontab:

crontab -e

 

Добавьте следующую строку, чтобы синхронизировать свой профиль каждый час:

0 * * * * unison work -batch

 

Вот как выглядит эта команда:

 

Основные возможности Unison, о которых вам следует знать

Вот краткий список полезных опций Unison:

Вариант Описание
-auto Автоматическое разрешение простых обновлений.
-batch Запуск без запроса пользователя (полезно для cron).
-ui text Интерфейс текстового режима терминала.
-repeat watch Постоянно отслеживайте изменения в папках.
-prefer newer На случай конфликта сохраните файл с последней версией изменений.

 

Пример комбинирования параметров:

unison work -auto -batch -prefer newer

 

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

 

Почему стоит выбрать Unison среди других инструментов

Инструмент Тип синхронизации Двусторонний Доступный графический интерфейс Пример использования
rsync Односторонний Резервное копирование, зеркалирование сервера
Унисон Двусторонний ✅ (GTK) Активные проекты на разных машинах

Заключительные мысли

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

Exit mobile version