Использовать варианты унисон в сценарии оболочки?
Я новичок в унисон и пытаюсь использовать его параметры в простом сценарии оболочки, но они, похоже, игнорируются при выполнении сценария, не вызывая синхронизацию между двумя серверами.
Мой сценарий оболочки:
#!/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
Как только параметры размещены здесь, скрипт выполняется без ошибок.