Home » Linux » CentOS » Unison — настройка двухсторонней синхронизации файлов

Unison — настройка двухсторонней синхронизации файлов

Есть удобная программа для двухсторонней синхронизации файлов и директорий — Unison. Она существует под множество платформ, в том числе и под CentOS. Но в CentOS 7 ее до сих пор нет в репозитории epel, хотя для предыдущих версий она существует. Соберем ее из исходников.

Теоретический курс по основам сетевых технологий. Позволит системным администраторам упорядочить и восполнить пробелы в знаниях. Цена очень доступная, есть бесплатный доступ. Все подробности по . Можно пройти тест на знание сетей, бесплатно и без регистрации.

Описание программы Unison

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

Особенности программы:

  • Выпускается под лицензией GPL.
  • Исходный код открыт и доступен для платформ Linux, Unix, BSD, Windows, Mac.
  • Сохраняет единую версию файла на различных устройствах.
  • Возможна кроссплатформенная синхронизация файлов, например виндовых и линуксовых машин.
  • Работает по протоколу TCP/IP.
  • Использует шифрованную передачу данных по ssh.
  • Используется алгоритм rsync с модифицированной частью передачи и перезаписи файлов. Это обеспечивает высокую надежность и быстродействие.
  • Написана на языке Caml.
  • Приложение работает в пользовательской среде, т.е. не требует административных прав.

Устанавливаем Unison в CentOS 7

Если мы попробуем ее поставить через yum, то увидим следующее:

установка unison

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

http://www.seas.upenn.edu/~bcpierce/unison//download/releases/stable/

Программа написана на языке OCaml, так что для начала ставим необходимые для unison зависимости:

# yum install ocaml ocaml-camlp4-devel ctags ctags-etags

Дальше переходим в домашний каталог и скачиваем дистрибутив:

# cd /root
# wget http://www.seas.upenn.edu/~bcpierce/unison//download/releases/stable/unison-2.48.3.tar.gz

Распаковываем архив с программой:

# tar xvfz unison-2.48.3.tar.gz

Переходим в папку с исходниками:

# cd unison-2.48.3

Собираем программу:

# make

Копируем в системные папки:

# cp -v unison /usr/local/sbin/
# cp -v unison /usr/bin

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

Пример настройки двухсторонней синхронизации

Рассмотрим работу программы на простом примере. Допустим у нас есть 2 папки с сайтами:

  • /web/sites/site1
  • /web/sites/site2

Создадим в папке site1 2 файла:

# cd /web/sites/site1

# touch 1.html 2.html

Синхронизируем содержимое папки site1 с папкой site2:

двухсторонняя ссинхронизация

Проверяем:

# cd /web/sites/site2

# ls -l
total 0
-rw-r--r-- 1 root root 0 Sep 21 17:22 1.html
-rw-r--r-- 1 root root 0 Sep 21 17:22 2.html

Содержимое каталогов синхронизировано. Теперь удалим из папки site2 один файл и снова проведем синхронизацию:

# rm -f /web/sites/site2/1.html

двухсторонняя синхронизация каталогов

Проверяем содержимое папки site1

# cd /web/sites/site1

# ls -l
total 0
-rw-r--r-- 1 root root 0 Sep 21 17:21 2.html

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

Онлайн курс по Linux

Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, рекомендую познакомиться с онлайн-курсом «Администратор Linux» в OTUS. Курс не для новичков, для поступления нужны базовые знания по сетям и установке Linux на виртуалку. Обучение длится 5 месяцев, после чего успешные выпускники курса смогут пройти собеседования у партнеров. Что даст вам этот курс:
  • Знание архитектуры Linux.
  • Освоение современных методов и инструментов анализа и обработки данных.
  • Умение подбирать конфигурацию под необходимые задачи, управлять процессами и обеспечивать безопасность системы.
  • Владение основными рабочими инструментами системного администратора.
  • Понимание особенностей развертывания, настройки и обслуживания сетей, построенных на базе Linux.
  • Способность быстро решать возникающие проблемы и обеспечивать стабильную и бесперебойную работу системы.
Проверьте себя на вступительном тесте и смотрите подробнее программу по .

Помогла статья? Есть возможность отблагодарить автора

Автор Zerox

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

One comment

  1. Аватар

    Unison уже есть в репозитории Centos 7

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

Ваш e-mail не будет опубликован.

Нажимая кнопку "Отправить комментарий" Я даю согласие на обработку персональных данных.