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

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


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

Дополнительные материалы по CentOS

Рекомендую полезные материалы по CentOS:
Настройки системы
  • Установка
  • Базовая настройка
  • Настройка времени
  • Настройка сети
  • Настройка репозиториев
  • Настройка iptables
Установка CentOS 7 в конфигурации minimal или netinstall с загрузочной флешки или по сети на диск или raid раздел.
Базовая настройка CentOS 7 для работы с любым функционалом. Приведены практические советы по улучшению безопасности и удобства администрирования.
Как установить точное время на сервере CentOS, настроить часовой пояс, синхронизировать время с помощью ntpdate и ntpd и другое.
Подробное описание настройки сети в CentOS 7 - задать ip адрес, dhcp, отключить ipv6, dns, hostname, статические маршруты и др.
Установка репозиториев epel, rpmforge и др. Добавление, удаление, обновление rpm репозиториев в CentOS.
Рассмотрены основные моменты настройки iptables в Centos 7 - установка, добавление правил, проброс портов, nat, логирование и д.р.
Настройка программных комплексов
 
  • Прокси сервер
  • Шлюз
  • Asterisk
  • Asterisk+Freepbx
  • Сервер VPN
  • Web сервер Apache
  • Web сервер Nginx
  • Почтовый сервер
Подробное описание настройки прокси сервера на базе CentOS 7 со связкой squid+AD+sams2, реализован запрет доступа по url и группам пользователей.
Простая и быстрая настройка шлюза на базе CentOS 7 для организации доступа в интернет из локальной сети.
Описание установки и настройки asterisk - популярной современной sip атс. Описан расширенный функционал, покрывающий большинство потребностей стандартного офиса в современной телефонии.
Подробное описание установки voip сервера asterisk и панели управления freepbx на CentOS 7.
Установка и настройка OpenVPN сервера на CentOS для объединения офисов и подключения удаленных пользователей
Настройка web сервера CentOS 7 на базе связки http сервера apache, php и сервера db mysql, или коротко - установка lamp.
Установка и настройка высокопроизводительного web сервера на базе nginx и php fpm. В качестве кэша используется APC.
Описание установки и настройки почтового сервера postfix на основе сборки iRedMail на CentOS 7. Обзор основных возможностей и рекомендации по настройке.
Настройка отдельных программ
 
  • Zabbix
  • Phpmyadmin
  • Webmin
  • Ruby
  • Обновление php
  • Vsftpd
  • Bind
  • Unison
  • Observium
Видео и подробное описание установки и настройки Zabbix 3.2, а также установка агентов на linux и windows и подключение их к мониторингу.
Подробное описание установки и настройки панели управления phpmyadmin на веб сервер apache и nginx под управлением Centos 7.
Подробное описание установки и настройки Webmin на CentOS 7 для удаленного подключения и управления сервером.
Подробное описание установки языка Ruby последней версии на веб сервер под управлением CentOS 7.
Подробное описание установки или обновления php 7 на CentOS 7. Рассмотрен вариант отката обновления и возврата на php 5.6 или 5.4.
Подробное описание с видео установки и настройки ftp сервера vsftpd, примеры с локальными и виртуальные пользователями в mysql.
Настройка DNS сервера BIND (Named) в CentOS 7. Рассмотрены наиболее популярные конфигурации, в том числе подробное логирование.
Установка Unison в CentOS 7 для двухсторонней синхронизации файлов.
Инструкция по установке и настройке сервера мониторинга Observium на CentOS 7. В качестве примера в конце добавлено одно устройство для мониторинга.
Разное
  • Настройка ssl в Apache
  • Бэкап с помощью rsync
Настройка работы веб сервера apache с виртуальными хостами по протоколу https с использованием бесплатного ssl сертификата.
Подробное описание настройки бэкапа с помощью rsync на примере скрипта инкрементного архива на системе Centos, Debian, Ubuntu, Windows.

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

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