我是新来的统一,并试图在一个简单的shell脚本中使用它的选项,但是当脚本执行时它们似乎被忽略,导致两个服务器之间没有更改同步。
我的shell脚本:
#!/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作业调用,我倾向于select脚本自己的选项,而不是偏好文件。
任何build议,我在做什么错了?
看起来你必须在定义根目录之后放置unison选项:
格式化如下: 链接到一致手册 (RTFM!)
unison root1 root2 [options]
所以我的代码应该是:
${_unison} -batch "${p}" "ssh://${r}/${p}" -times -owner -group
一旦这些选项被放置在这里,脚本执行没有任何错误。