我正在尝试在本地(在 Windows 机器上)使用 rync 连接到远程服务器(我的 osx box),以便测试远程部署构建脚本。我之前在 2 个 Linux 服务器之间成功进行了 rsync,但现在遇到了问题。输出如下:
$ rsync -v -e ssh [email protected]:/Library/WebServer/sites/staging/app1/ ./export
skipping directory /Library/WebServer/sites/staging/app1/.
sent 8 bytes received 13 bytes 3.82 bytes/sec
total size is 0 speedup is 0.00
$
或者
$ rsync -avz -e ssh [email protected]:/Library/WebServer/sites/staging/app1/ ./export
receiving file list ... done
./
sent 26 bytes received 68 bytes 17.09 bytes/sec
total size is 0 speedup is 0.00
$
远程 app1 目录为空,而本地导出目录有 4 个子目录,每个子目录中都有一堆文件
答案1
rsync -v -e ssh [email protected]:/Library/WebServer/sites/staging/app1/ ./export
您没有给它任何选项将其置于递归模式(如-r
或)-a
。
远程 app1 目录为空,而本地导出目录有 4 个子目录,每个子目录中都有一堆文件
这里的选项是否颠倒了?命令应该是rsync [source] [DESTINATION]
。如果 app1 目录为空,而您尝试复制一个空目录,那么您将不会做任何有用的事情。
也许你需要的是类似这样的东西?
rsync -avz ./export/ [email protected]:/Library/WebServer/sites/staging/app1/
还:
- 您几乎总是应该在使用 rsync 的目录中包含一个尾随斜杠。
- 过去 5-10 年发布的几乎每个 rsync 版本都默认使用 ssh 进行远程传输。您可能不必指定
-e ssh
。
答案2
尝试通过在命令中添加以下选项来启用 rsync 的内置输出日志文件功能。
--log-file=/path/to/log.file
您还可以通过添加额外的-v
选项来增加详细程度,例如-avvz
,根据手册页,“两个 -v 选项将为您提供有关跳过哪些文件的信息,并在最后提供更多信息。”
如果返回的信息无助于识别问题,请编辑您的问题并添加额外的输出。