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

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

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

#!/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, я бы предпочел, чтобы параметры указывались в самих сценариях, а не в файлах настроек.

Любые предложения о том, что я делаю не так?

1 ответ

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

Отформатирован так: ссылка на руководство по унисону (RTFM!)

unison root1 root2 [options]

Так что мой код должен быть:

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

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

Другие вопросы по тегам