为什么 rsync 跳过主目录?

为什么 rsync 跳过主目录?

我正在尝试在本地(在 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 选项将为您提供有关跳过哪些文件的信息,并在最后提供更多信息。”

如果返回的信息无助于识别问题,请编辑您的问题并添加额外的输出。

相关内容