Я новичок в 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
После размещения здесь параметров скрипт выполняется без ошибок.