从 Windows Server 2016 到 Windows Server 2016 运行 rsync 时出现问题

从 Windows Server 2016 到 Windows Server 2016 运行 rsync 时出现问题

cygwin我尝试使用powershell 和 rsync.exe将文件从一个 Windows 主机复制到另一个 Windows 主机,但没有成功。在 Windows 主机上,我想发送我openssh已安装的副本,我可以通过 22 上的 telnet 连接到它,并可以通过 scp 向它发送文件。但是,当我尝试从 Windows 或 Linux 计算机将文件复制到它时,我收到以下错误:

'rsync' is not recognized as an internal or external command,
operable program or batch file.
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(235) [sender=3.1.1]

这是我用来从 powershell 复制的命令:

.\rsync.exe -avzh --stats -P -e C:\Users\Administrator\Desktop\rsync\ssh.exe rs
ync.html 'administrator@ip:C:\\'

当我运行相同的命令,但尝试复制到 CentOS 7 机器时,我只需更改administrator@ip:C:\\root@ip:/root/,它就可以工作。

如果您知道问题可能是什么,或者您需要任何其他信息,请告诉我。

答案1

不幸的是,我无法直接回答您的问题,但是根据我的经验,我可以为您提供一个同样好的解决方法,而 Cygwin 可以为您提供一个在 Windows 上使用 Linux 命令的良好平台。请记住,Windows 不是 Linux。

大多数 Linux 命令都有 Windows 对应命令,是的,有些命令不是单行的,但是你看过 robocopy 吗?

Robocopy -https://en.wikipedia.org/wiki/Robocopy

已安装并可与 powershell 一起使用。

答案2

供您参考:我构建了一个包含 rsync 的方便的 OpenSSH 包:

https://github.com/Bill-Stewart/CygSSH

它使用 Cygwin v3,因此不需要专用的服务帐户(服务以 身份运行SYSTEM)。

目的是提供一个方便的 OpenSSH 和 rsync 打包包,使其在 Windows 机器上安装和使用(相对)方便,因此它具有一些更加以 Windows 为中心的默认设置和功能:

  • 安装程序支持静默安装和添加到系统路径
  • Windows PowerShell 是远程交互式 shell
  • 它创建一个 SSH 用户本地组用于身份验证,并默认设置sshd_config;支持嵌套组(例如,如果您想通过 GPO 管理成员资格)
  • 它支持授予账户仅 sftp 访问权限
  • 它包括 rsync

该软件包需要 Vista/Server 2008 或更新版本以及 Windows PowerShell 2.0 或更高版本。

相关内容