【问题标题】:rsync error: Bad file numberrsync 错误:错误的文件号
【发布时间】:2011-09-10 07:01:23
【问题描述】:

我正在尝试将内容从本地计算机(64 位 Windows 7)同步到远程服务器(64 位 Ubuntu 8),但它失败了。任何建议都非常受欢迎,因为我已经花了太多时间处理这些废话......提前致谢!

$ ls -al
total 3
drwxr-xr-x    4 www www     4096 Jun  7 11:04 .
drwxr-xr-x    5 www www     4096 Jun  7 13:13 ..
drwxr-xr-x    7 www www        0 Jun  7 11:04 release-20110607110404

$ rsync -avz ./release-20110607110404/ www@web1:/home/www/
opening connection using: ssh -l www web1 rsync --server -vvlogDtprze.iLsf . /home/www/
select: Bad file number
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(610) [sender=3.0.8]

$ rsync --version
rsync  version 3.0.8  protocol version 30
Copyright (C) 1996-2011 by Andrew Tridgell, Wayne Davison, and others.
Web site: http://rsync.samba.org/
Capabilities:
    64-bit files, 64-bit inums, 32-bit timestamps, 64-bit long ints,
    socketpairs, hardlinks, symlinks, IPv6, batchfiles, inplace,
    append, ACLs, no xattrs, iconv, symtimes   

【问题讨论】:

  • 我应该补充一点,我正在使用 cwRsync (C:\Program Files (x86)\cwRsync\bin\rsync.exe)
  • rsync 服务器在 ubuntu 机器上运行正常吗?你可以从win-7 ping ubuntu 吗?检查您的防火墙规则以确保 rsync 连接可以打开?
  • 以防万一其他人遇到这种情况,问题是由 mingw 使用的 ssh.exe 引起的,如上面的 msysgit 和任何版本的 rsync 附带的 ssh.exe在 Windows 上使用。如果您更改在系统变量中定义这两个 bin 文件夹的顺序,您将得到不同的结果.. 一个可以工作.. 一个不会..

标签: windows-7 rsync msysgit ubuntu-8.04 cwrsync


【解决方案1】:

嘿,我想通了,至少找到了问题的根源......它在 msysgit(code.google.com/p/msysgit)的 g​​it bash 中不起作用,但它在常规 Windows 命令行中起作用!奇怪!!!

【讨论】:

  • 谢谢。我实际上是在为不同的问题搜索相同的错误,并且我还使用 Git Bash 作为我的命令行环境。因此,与 Git Bash 在 Windows 上使用 Python easy_install 相同的问题和解决方案。
  • cwRsync 带有一个与 gitbash 不同的 ssh 客户端。这可能是问题的主要部分,如果不是全部的话。我遇到了相同或类似的问题,所以如果我有任何问题,我会再次发布。
【解决方案2】:

好的,看看这个。 GitBash 带有一堆 *nix 实用程序(包括 ssh),但 cwRsync 也带有 ssh。现在,在我的系统上,GitBash 附带的 ssh 版本已经过时了,而 cwRsync 附带的版本则非常新。如果我从 GitBash 内部运行 which ssh,显然会显示 GitBash 版本。那么,猜猜rsync 将使用哪个版本?我猜是错误的。

你可以解决这个问题。

您正在尝试运行此命令:

rsync -avz ./release-20110607110404/ www@web1:/home/www/

但由于您想使用不同的ssh,您需要这样的东西:

rsync -avz -e '<path to cwRsync ssh> www@web1' ./release-20110607110404/ :/home/www/

现在,如果你和我一样,你会遇到另一个问题,那就是ssh 会抱怨你的 ssh 配置文件有错误的权限。那是因为它出于某种原因正在查看/cygdrive/&lt;the correct path to your config file&gt;。但这也是可以解决的:

rsync -avz -e '<path to cwRsync ssh> -F <path to ssh config> www@web1' ./release-20110607110404/ :/home/www/

现在,请记住,您必须使用到 ssh 和 ssh 配置文件的路径需要采用愚蠢的 Windows 反斜杠格式(如果我不使用该格式,至少我的系统似乎会抱怨)但我相信这对你有用,你可以留在 GitBash 而不是使用 cmd。

【讨论】:

    猜你喜欢
    • 2020-05-16
    • 2023-04-09
    • 1970-01-01
    • 2020-07-22
    • 1970-01-01
    • 1970-01-01
    • 2015-05-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多