我已将 ff. 代码放在 rsync.bat 中:
for %%A in (%VAR_REMOTE_HOST%) do (
set VAR_TARGET=%USER%@%%A:%VAR_TARGET_DIR%
echo Rsync Source Dir: %VAR_SOURCE%
setlocal ENABLEDELAYEDEXPANSION
echo Rsync Target Dir: !VAR_TARGET!
endlocal
echo Syncing files...
rsync -rltgDvzO --chmod=Dugo=rwX,Fugo=rw -e ssh %VAR_SOURCE% %VAR_TARGET%
)
其中 VAR_REMOTE_HOST 是以逗号分隔的服务器列表。
它会将文件列表以及权限、大小和时间戳输出到 rsync。它甚至会在末尾显示 rsync 日志(发送字节数、接收字节数、字节数/秒)。但是,文件不会发送到目标。就好像它进行了试运行一样。(但没有 -n 选项)
请参阅此处的屏幕截图。(http://postimg.org/image/vc0kei1j1/)
有人遇到过这种情况么?
答案1
就像是进行了一次试运行一样。(但没有 -n 选项)
再次查看你的 rsync 行:
rsync -nrltgDvzO
我清楚地看到-n
那里有一个选择......
答案2
我找到了罪魁祸首!将 %VAR_TARGET% 更改为 !VAR_TARGET! 并将 endlocal 移至循环末尾。
新代码:
for %%A in (%VAR_REMOTE_HOST%) do (
set VAR_TARGET=%USER%@%%A:%VAR_TARGET_DIR%
echo Rsync Source Dir: %VAR_SOURCE%
setlocal ENABLEDELAYEDEXPANSION
echo Rsync Target Dir: !VAR_TARGET!
echo Syncing files...
rsync -rltgDvzO --chmod=Dugo=rwX,Fugo=rw -e ssh %VAR_SOURCE% !VAR_TARGET!
endlocal
)