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 或更高版本。