задача:
нужно с помощью программы csync2 настроить синхронизацию некоторых файлов на нескольких серверах(в моем случае 2)выполнение:
пролистал больше десятка разных статей по установке и визде написано примерно одинаковое
можно даже хабр процитировать
http://habrahabr.ru/blogs/sysadm/120702/система CentOS
качаю rpm пакет, ставлю
создаю сертификат. создаю ключ
прописываю в конфиге на обоих серверах записьgroup test {
host cl1;
host cl2;
key /etc/csync2/csync2.cluster.key;
include /test;
auto younger;
}создаю файл test в корне и выдаю на него права 777 на всякий случай
и дальше выполняю синхронизациюcsync2 -xv
и тут самое интересное
при первом запуске он мне выдаетMarking file as dirty: /test
а дальше вот что о мне выдает
Connecting to host cl2.choco (SSL) ...
вроде как коннект пошел, но результат не последовал
файл не обновился
вот собственно вопрос что с этим делать и в какую сторону копать
csync очень капризна особенно с именами хостов, в конфиге у вас cl2 ,а соединяетесь с cl2.choco, какой вывод дает комманда hostname, то и нужно писать в конфиге, сам на эти грабли наступал.
> csync очень капризна особенно с именами хостов, в конфиге у вас cl2
> ,а соединяетесь с cl2.choco, какой вывод дает комманда hostname, то
> и нужно писать в конфиге, сам на эти грабли наступал.ой да это я здесь неправильно написал
хосты называются cl1.choco и cl2.choco
> csync очень капризна особенно с именами хостов, в конфиге у вас cl2
> ,а соединяетесь с cl2.choco, какой вывод дает комманда hostname, то
> и нужно писать в конфиге, сам на эти грабли наступал.в фаерволе порт 30865 открыл и с ssh тоже все нормально
и от root спокойно коннекчусь, но csync2 почему-то не работает
>> csync очень капризна особенно с именами хостов, в конфиге у вас cl2
>> ,а соединяетесь с cl2.choco, какой вывод дает комманда hostname, то
>> и нужно писать в конфиге, сам на эти грабли наступал.
> в фаерволе порт 30865 открыл и с ssh тоже все нормально
> и от root спокойно коннекчусь, но csync2 почему-то не работаетдобавте в конфиг logfile посмотрите что происходит.
>>> csync очень капризна особенно с именами хостов, в конфиге у вас cl2
>>> ,а соединяетесь с cl2.choco, какой вывод дает комманда hostname, то
>>> и нужно писать в конфиге, сам на эти грабли наступал.
>> в фаерволе порт 30865 открыл и с ssh тоже все нормально
>> и от root спокойно коннекчусь, но csync2 почему-то не работает
> добавте в конфиг logfile посмотрите что происходит.logfile вставляется в блоке action, а если самого действия нет то и лог писаться не будит
на всяк случай проверил. действительно так
>>> csync очень капризна особенно с именами хостов, в конфиге у вас cl2
>>> ,а соединяетесь с cl2.choco, какой вывод дает комманда hostname, то
>>> и нужно писать в конфиге, сам на эти грабли наступал.
>> в фаерволе порт 30865 открыл и с ssh тоже все нормально
>> и от root спокойно коннекчусь, но csync2 почему-то не работает
> добавте в конфиг logfile посмотрите что происходит.собственно полный список вызовов
если это что-то дастMy hostname is cl1.choco.
Database-File: /var/lib/csync2/cl1.choco.db
Config-File: /etc/csync2/csync2.cfg
Running recursive check for / ...
SQL: SELECT filename from file where filename = '/' or 1 ORDER BY filename
Trying to fetch a row from the database.
Trying to fetch a row from the database.
Trying to fetch a row from the database.
Trying to fetch a row from the database.
Trying to fetch a row from the database.
Trying to fetch a row from the database.
Trying to fetch a row from the database.
Trying to fetch a row from the database.
SQL Query finished.
Checking /* ..
Don't check at all: /var
Don't check at all: /usr
Don't check at all: /tmp
Match (+): /test on /test
Checking /test.
SQL: SELECT checktxt FROM file WHERE filename = '/test'
Trying to fetch a row from the database.
Trying to fetch a row from the database.
SQL Query finished.
Don't check at all: /sys
Don't check at all: /srv
Don't check at all: /selinux
Don't check at all: /sbin
Don't check at all: /root
Don't check at all: /proc
Don't check at all: /oradiag_root
Don't check at all: /opt
Don't check at all: /net
Don't check at all: /mnt
Don't check at all: /misc
Don't check at all: /media
Don't check at all: /lost+found
Don't check at all: /lib64
Don't check at all: /lib
Don't check at all: /home
Don't check at all: /etc
Don't check at all: /dev
Don't check at all: /boot
Don't check at all: /bin
Don't check at all: /.autorelabel
Don't check at all: /.autofsck
SQL: SELECT peername FROM dirty GROUP BY peername ORDER BY random()
Trying to fetch a row from the database.
Trying to fetch a row from the database.
SQL Query finished.
SQL: SELECT filename, myname, force FROM dirty WHERE peername = 'cl2.choco' ORDER by filename ASC
Trying to fetch a row from the database.
Trying to fetch a row from the database.
Trying to fetch a row from the database.
Trying to fetch a row from the database.
Trying to fetch a row from the database.
Trying to fetch a row from the database.
Trying to fetch a row from the database.
Trying to fetch a row from the database.
SQL Query finished.
Connecting to host cl2.choco (SSL) ...
Local> SSL\n
Peer> OK (activating_ssl).\n
> SQL Query finished.
> Connecting to host cl2.choco (SSL) ...
> Local> SSL\n
> Peer> OK (activating_ssl).\nа проблема так никуда и не делась
>> SQL Query finished.
>> Connecting to host cl2.choco (SSL) ...
>> Local> SSL\n
>> Peer> OK (activating_ssl).\n
> а проблема так никуда и не деласьостается два пути
1. пытаться собрать из исходников, что у меня не очень получается
2. ограничиться rsync
>>> SQL Query finished.
>>> Connecting to host cl2.choco (SSL) ...
>>> Local> SSL\n
>>> Peer> OK (activating_ssl).\n
>> а проблема так никуда и не делась
> остается два пути
> 1. пытаться собрать из исходников, что у меня не очень получается
> 2. ограничиться rsyncсборка из исходников не помогла. тот же эффект
а с rsync я обнаружил проблему
как защитить от одновременного запуска нескольких процессов на одной машине понятно
но как защитить от одновременного запуска процессов на разных машинах непонятно
то есть получается встречная синхронизация которая может привести к серьезным последствиям
>[оверквотинг удален]
>>>> Peer> OK (activating_ssl).\n
>>> а проблема так никуда и не делась
>> остается два пути
>> 1. пытаться собрать из исходников, что у меня не очень получается
>> 2. ограничиться rsync
> сборка из исходников не помогла. тот же эффект
> а с rsync я обнаружил проблему
> как защитить от одновременного запуска нескольких процессов на одной машине понятно
> но как защитить от одновременного запуска процессов на разных машинах непонятно
> то есть получается встречная синхронизация которая может привести к серьезным последствиямпипец. касинк заработал
теперь осталось понять что я сделал XD
даже больше скажу
при вызове
csync2 -xvvvvон показывает
...
Connecting to host cl2.choco (SSL) ...
Local> SSL\n
Peer> OK (activating_ssl).\nна сколько я знаю это значит что все ок
на деле это правда не так