我正在尝试在一组负载均衡的网络节点(w1、w2、w3)上同步一组域(a.com、b.com 和 c.com)。
我计划构建到节点 1 (w1),然后使用类似这样的方法与其他节点同步:
rsync -arv /var/www/vhosts/a.com/ root@w1:/var/www/vhosts/a.com/
使用动态脚本(假设我已经在 w1 上):
#!/bin/bash
DOMAINS="a.com b.com c.com"
NODES="w2 w3"
for DOMAIN in $DOMAINS; do
for NODE in $NODES; do
COMMAND="rsync -arv --exclude 'logs' --exclude '.git' /var/www/vhosts/$DOMAIN/ root@$NODE:/var/www/vhosts/$DOMAIN/"
echo "$COMMAND"
"$COMMAND"
done
done
第一个是手动的,rsync
工作正常。但出于某种原因,我的批处理 rsync 脚本出现故障。
有人愿意帮我调试吗?谢谢。
最佳答案
你那里有一些过多的引用。更改此行:
"$COMMAND"
对此:
$COMMAND
当您在整个事物周围加上引号时,shell 将其解释为单个“标记”。这是一个简单的例子:
$ COMMAND="echo hello"
$ "$COMMAND"
bash: echo: command not found...
$ $COMMAND
hello
关于linux - 我怎样才能将我所有的 web 节点从一个 master 上同步?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10541581/