Windows上的Rsync - dup()输入/输出/错误失败

时间:2017-05-23 11:07:06

标签: vagrant cygwin rsync vagrantfile vagrant-windows

我正在使用Vagrant管理虚拟机以进行开发。我的操作系统是Windows 10,我使用的是Vagrant 1.9.1。由于文件夹同步的默认驱动程序很慢,我想实现Rsync。

为此,我使用了Cygwin并安装了Rsyn和OpenSSL。

当我在Cygwin控制台内运行vagrant时出现了这个错误:

There was an error when attempting to rsync a synced folder.
Please inspect the error message below for more info.

Host path: /cygdrive/c/Users/User/my-project/my-project/
Guest path: /var/www
Command: "rsync" "--verbose" "--archive" "-z" "--chmod=ugo=rwX" "--no-perms" "--no-owner" "--no-group" "--rsync-path" "sudo rsync" "-e" "ssh -p 2222 -o LogLevel=FATAL   -o IdentitiesOnly=yes -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -i 'C:/Users/User/my-project/my-project/.vagrant/machines/gbb-my-project-sys-web-dev-1/virtualbox/private_key'" "--exclude" ".vagrant/" "--exclude" ".git/" "/cygdrive/c/Users/User/my-project/my-project/" "vagrant@127.0.0.1:/var/www"
Error: dup() in/out/err failed
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(226) [sender=3.1.1]

我以前用来运行流浪汉的命令

export VAGRANT_DETECTED_OS=cygwin
VAGRANT_HOME=/cygdrive/c/Users/User
export VAGRANT_HOME
vagrant up

Vagrant config:

synced_folder:
            vflsf_udtdv3aeexfs:
                owner: www-data
                group: www-data
                source: ./
                target: /var/www
                sync_type: rsync
                smb:
                    smb_host: ''
                    smb_username: ''
                    smb_password: ''
                    mount_options:
                        dir_mode: '0775'
                        file_mode: '0664'
                rsync:
                    args:
                        - '--verbose'
                        - '--archive'
                        - '-z'
                    exclude:
                        - .vagrant/
                        - .git/
                    auto: 'true'

1 个答案:

答案 0 :(得分:1)

您是否通过cygwin安装了ssh?如果您有来自其他来源的ssh(例如,git for windows),那么来自cygwin的rsync可能是not compatible