我到处寻找解决方案......但我一直收到此错误:
rsync: change_dir "/cygdrive/C/Users/mloch/Desktop/sites/drupalsite1/" failed: Bad file number (9)
rsync: mkdir "/cygdrive/C/Users/mloch/Desktop/sites/drupalsite2" failed: Bad file number (9)
rsync error: error in file IO (code 11) at /usr/src/rsync/rsync-3.0.8/main.c(587) [Receiver=3.0.8]
rsync: connection unexpectedly closed (9 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at /usr/src/rsync/rsync-3.0.8/io.c(601) [sender=3.0.8]
Could not rsync from /cygdrive/C/...drupalsite1// to "/cygdrive/C/...drupalsite2//"
一些论坛说可能是 rsync 无法访问 tmp 文件夹。
答案1
谢谢 mloch,这是我花了好几个小时尝试所有其他方法后找到的解决这个问题的唯一方法......
为了使 rsync 和 sql-sync 使用 Windows(w/Aquia)在远程服务器上工作,需要更改 2 个文件 filesystem.inc 和 SqlBase.php。
首先删除cygdrive/从$path = preg_replace('/cygdrive/(\w):/', '/${1}', >str_replace('\', '/', $path));在 filesystem.inc 的第 61 行并更改drush_shell_exec('gzip -d %s',$ input_file)
代替
drush_shell_exec('gunzip%s',$ input_file)在 SqlBase.php 第 144 行
同步愉快!
虽然就我而言,我所需要做的就是删除cygdrive/在文件系统.inc 中...
无需将“gzip”更改为“gunzip”,它似乎就可以正常工作。
现在肯定有一个比修改 drush 的代码更好的解决方案,但目前它解决了 rsync / sql-sync 的问题。
为了向其他人澄清,这些文件(最有可能)位于:
- C:\Program 文件(x86)\DevDesktop\drush\vendor\drush\drush\includes
- C:\Program 文件(x86)\DevDesktop\drush\vendor\drush\drush\lib\Drush\Sql
答案2
为了使 rsync 和 sql-sync 使用 Windows(w/Aquia)在远程服务器上工作,需要更改 2 个文件 filesystem.inc 和 SqlBase.php。
首先删除cygdrive/从 $path = preg_replace('/cygdrive/(\w):/', '/${1}', str_replace('\', '/', $path));在 filesystem.inc 的第 61 行并更改drush_shell_exec('gzip -d %s',$ input_file)
代替
drush_shell_exec('gunzip%s',$ input_file)在 SqlBase.php 第 144 行
同步愉快!