Поиск по сайту:

Все приходит вовремя, если люди умеют ждать (Ф. Рабле).

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

5 мин для чтения
FavoriteLoadingДобавить в избранное
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
25 января 2021
Как использовать 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 в обеих системах.

 

Читать  Как настроить на Nginx поддержку HTTP/2 на Debian 9

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

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

 

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

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

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

  • 192.168.0.200 – server1
  • 192.168.0.201 – server2

 

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

ssh-keygen -t rsa

Generating public/private rsa key pair.

Enter file in which to save the key (/home/csalem/.ssh/id_rsa):

Created directory '/home/csalem/.ssh'.

Enter passphrase (empty for no passphrase):

Enter the same passphrase again:

Your identification has been saved in /home/csalem/.ssh/id_rsa.

Your public key has been saved in /home/csalem/.ssh/id_rsa.pub.

The key fingerprint is:

SHA256:4p5YuEBEa5lrINzqPgwHRVhSS0TNlIIl70A0q2MFcS8 csalem@Debian-PC

The key’s random art image is:

+---[RSA 2048]----+

|+/@=..           |

|=*O==            |

|++OE .           |

|+*o..            |

|o+=   . S        |

|++.  o .         |

|oo. . o          |

|.o . = .         |

| .. o o          |

+----[SHA256]-----+

 

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

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

ssh-copy-id 192.168.0.201

 

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

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

mkdir -p/dir1

 

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

mkdir -p/dir2

 

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

Читать  Как установить и использовать Docker Compose в Debian 10 Linux

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

sudo mv ~/Documents.zip/dir1

 

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

unison /dir1 ssh://192.168.0.201//dir2

 

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

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

cd /dir2 && ls -la

-rw-r--r-- 1 root root  436 Jan  5 12:57 Documents.zip

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

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

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

sudo vi ~/.unison/default.prf

 

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

auto=true

batch=true

 

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

 

Настройка Cronjob в Unison

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

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

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

 

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

#!/bin/bash/

unison /dir1 ssh://192.168.0.201//dir2

 

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

sudo chmod 755 /usr/bin/unisoncron

 

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

sudo crontab -e

 

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

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

 

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

 

Заключение

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

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Поделиться в соц. сетях:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии

Читайте также

0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x
()
x

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам:

Заполните форму и наш менеджер перезвонит Вам в самое ближайшее время!

badge
Обратный звонок 1
Отправить
galka

Спасибо! Ваша заявка принята

close
galka

Спасибо! Ваша заявка принята

close