Установка · 4 min read · Nov 17, 2025
Установка веб-, почтового и MySQL кластера на Debian 8.4 Jessie с ISPConfig 3.1 - Страница 4
** 7 Установка Unison
Далее мы устанавливаем Unison. Unison используется для синхронизации каталога /var/www между server1 и server2.
Установите unison на server1 и server2 с помощью
apt-get install unisonТеперь мы устанавливаем файл конфигурации unison на server1:
Создайте новый файл /root/.unison/web:
mkdir /root/.unison
vi /root/.unison/web.prf… и добавьте следующее содержимое:
# Корни синхронизации
root = /var/www
root = ssh://192.168.0.106//var/www
# Пути для синхронизации
#path = www
#path = vmail
# Некоторые регулярные выражения, указывающие имена и пути для игнорирования
#ignore = Path stats ## игнорирует /var/www/stats
#ignore = Path stats/* ## игнорирует /var/www/stats/*
#ignore = Path */stats ## игнорирует /var/www/somedir/stats, но не /var/www/a/b/c/stats
#ignore = Name *stats ## игнорирует все файлы/каталоги, заканчивающиеся на "stats"
#ignore = Name stats* ## игнорирует все файлы/каталоги, начинающиеся на "stats"
#ignore = Name *.tmp ## игнорирует все файлы с расширением .tmp
ignore = Name sess_*
ignore = Name *access.log*
ignore = Name error.log
ignore = Name webalizer.conf
# Когда установлено в true, этот флаг заставляет пользовательский интерфейс пропускать
# запросы на подтверждение при неконфликтующих изменениях. (Точнее,
# когда пользовательский интерфейс завершает установку направления
# распространения для одной записи и собирается перейти к
# следующей, он пропустит все неконфликтующие записи и перейдет
# непосредственно к следующему конфликту.)
auto=true
# Когда это установлено в true, пользовательский интерфейс не будет задавать никаких
# вопросов. Неконфликтующие изменения будут распространены;
# конфликты будут пропущены.
batch=true
# !Когда это установлено в true, Unison запросит дополнительное
# подтверждение, если окажется, что вся реплика была
# удалена, перед распространением изменения. Если также установлен флаг
# batch, синхронизация будет прервана. Когда используется
# предпочтение пути, то такое же подтверждение будет запрашиваться для
# верхних уровней путей. (На данный момент этот флаг влияет только на
# текстовый пользовательский интерфейс.) См. также предпочтение mountpoint.
confirmbigdel=true
# Когда это предпочтение установлено в true, Unison будет использовать
# время изменения и длину файла в качестве `псевдо inode
# номера' при сканировании реплик на наличие обновлений, вместо того чтобы читать
# полное содержимое каждого файла. В Windows это может привести к тому,
# что Unison пропустит распространение обновления, если время изменения
# и длина файла не изменились. Однако Unison никогда не перезапишет такое обновление
# изменением из другой реплики, так как он всегда выполняет безопасную
# проверку на наличие обновлений непосредственно перед распространением изменения.
# Таким образом, разумно использовать этот переключатель в Windows большую часть времени
# и время от времени запускать Unison один раз с fastcheck, установленным в false,
# если вы беспокоитесь, что Unison мог пропустить обновление.
# Значение по умолчанию для предпочтения - auto, что заставляет
# Unison использовать быструю проверку на Unix-репликах (где это безопасно)
# и медленную проверку на Windows-репликах. Для обратной
# совместимости можно использовать yes, no и default вместо
# true, false и auto. См. раздел "Быстрая проверка" для получения дополнительной
# информации.
fastcheck=true
# Когда этот флаг установлен в true, атрибуты группы файлов
# синхронизируются. Синхронизируются ли имена групп или идентификаторы групп,
# зависит от предпочтения numerids.
group=true
# Когда этот флаг установлен в true, атрибуты владельца файлов
# синхронизируются. Синхронизируются ли имена владельцев или идентификаторы владельцев,
# зависит от предпочтения extttnumerids.
owner=true
# Включение предпочтения -prefer root заставляет Unison всегда
# разрешать конфликты в пользу root, а не запрашивать
# указания у пользователя. (Синтаксис root такой же, как для
# предпочтения root, плюс специальные значения newer и older.)
# Это предпочтение переопределяется предпочтением preferpartial.
# Это предпочтение следует использовать только если вы уверены, что
# знаете, что делаете!
prefer=newer
# Когда это предпочтение установлено в true, текстовый пользовательский интерфейс
# не будет выводить ничего, кроме случаев ошибок.
# Установка silent в true автоматически устанавливает предпочтение batch
# в true.
silent=true
# Когда этот флаг установлен в true, времена изменения файлов (но не
# времена изменения каталогов) распространяются.
times=false
# Когда этот флаг установлен, Unison будет записывать все изменения в файловые системы в файл.
log=false
# Когда этот флаг установлен в true, группы и пользователи синхронизируются численно, а не по имени.
# Специальный uid 0 и специальная группа 0 никогда не сопоставляются через имена пользователей/групп, даже если это
# предпочтение не установлено.
numericids=trueМы хотим автоматизировать синхронизацию, поэтому создаем небольшой скрипт и создаем cronjob на server1:
mkdir /root/scripts
vi /root/scripts/unison.shи добавляем следующее содержимое:
#!/bin/sh
lockdir=/tmp
UNISON=/usr/bin/unison
LOGGER=/usr/bin/logger
if [ ! -f /$lockdir/unison ]; then
touch $lockdir/unison
$UNISON -testserver web
rc=$?
if [[ $rc != 0 ]] ; then
echo "error"
$LOGGER -d -t unison "web - ошибка подключения к удаленному"
else
$UNISON web
fi
rm $lockdir/unison
else
$LOGGER -d -t unison "unison уже запущен"
fiсделайте скрипт исполняемым:
chmod 700 /root/scripts/unison.shИ запустите первую синхронизацию. Чтобы получить некоторый вывод во время синхронизации, установите silent = false в /root/.unsion/web.prf. После этого запустите unison:
/root/scripts/unison.shНаконец, создаем cronjob:
crontab -e# unison
* * * * * /root/scripts/unison.sh > /dev/nullGet new posts in your inbox
No spam. Unsubscribe anytime.