Назад | Перейти на главную страницу

использовать параметры unison в сценарии оболочки?

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

Мой сценарий оболочки:

#!/bin/bash
# set paths / dirs
_paths="/var/www/html/ \
"

# binary file name
_unison=/usr/bin/unison

# Log in to remote server without a password
source $HOME/.keychain/$HOSTNAME-sh

# server names 
# sync node1.example.com with rest of the servers in cluster
_rserver="node2.example.com"

# sync it
for r in ${_rserver}
do
    for p in ${_paths}
    do
            ${_unison} -batch -time -owner -group "${p}"  "ssh://${r}/${p}"
    done
done

Если я удалю -time -owner -group параметры, скрипт синхронизирует изменения, сделанные нормально.

Если я добавлю параметры в ~/.unison/default.prf файл вместо этого скрипт выполняется успешно. например

# Unison preferences file

prefer=newer
times=true
group = true
owner = true

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

Есть предложения по поводу того, что я делаю неправильно?

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

В таком формате: ссылка на руководство unison (RTFM!)

unison root1 root2 [options]

Итак, мой код должен быть:

${_unison} -batch "${p}"  "ssh://${r}/${p}" -times -owner -group

После размещения здесь параметров скрипт выполняется без ошибок.