.net – Windows / Linux之间的Unison同步在传输过程中随机挂起
我们定期将交互式信息亭CPU部署到远程网站,我开发了一个内容更新程序,可以在每个信息亭(
Windows 7 Pro)和托管CMS(在linode.com上运行的虚拟化Ubuntu服务器)之间执行媒体资产的夜间同步. .内容更新程序在C#/ .NET中创作,它使用Process.Start()生成子Unison进程. Unison配置为使用私钥通过SSH连接到远程服务器.
我们遇到的问题是,当从ContentUpdater.exe作为子进程生成时,Unison通常会在传输过程中停止与远程服务器通信并无限期挂起.没有简单的复制品 – 有时候它会起作用,而不是它会挂起.它似乎在更大的更新(400MB)上更脆弱,但这比其他任何东西更令人猜测.当它挂起时,客户端上的Unison进程(Windows 7)仍然显示25%的CPU利用率,服务器也显示同步进程正在运行 – 没有网络活动.我知道它是连接的,因为它总是启动过程并在转移中途,但它永远不会挂在同一个地方两次.我正在运行Unison-2.40.63.exe的本机Windows二进制版本,以及远程服务器上的同一版本的unison. Windows上的Unison命令行如下所示: Unison-2.40.63.exe -contactquietly -silent -batch -sshcmd "C:KioskManagementAppsssh2plink.bat" -sshargs "-p 22 -i C:cygwinhomesomeuser.sshcontentupdater-rsync-key.ppk" -ignore "Path {innovations,todaytomorrow,scale,mooreslaw,brilliantminds,askafab}" ssh://cmsuser@server//home/cms/base-preview/webapps/ROOT/applications C:kioskdirtempapplications -force ssh://cmsuser@server//home/cms/base-preview/webapps/ROOT/applications 为了记录,我最初创作了内容更新程序以使用rsync(通过Windows上的cygwin),但是遇到了同样的问题.为了看看ssh运输是否是问题的一部分,我tried using rsync in server mode (rsyncd)但是悬挂继续抬头. 在这一点上,我彻底难倒.问题在其他服务器上也是如此,所以我认为这是在Windows方面的事情.我也倾向于认为问题只发生在从另一个进程内部的Process.Start()调用Unison / rsync时(UPDATE:我从命令行运行时只是让它重新编译) – 它似乎没有直接从命令行运行时失败. Unison / rsync也永远不会出错,因此没有要检查的日志文件(除非有人知道我可以检查远程服务器上的某种服务器端跟踪或日志文件 – 完全披露:我是FreeBSD的极客,并且知道关于Ubuntu的一点点珍贵). 提前感谢所有见解/想法/解决方案! 最好 解决方法
我有这个问题.我花了好几天才解决它.
结束添加-halfduplex解决了我的问题. 如文档中所述: 半双工 就我而言,我正在Windows / OSX之间进行同步. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- CMPT6:如何为Primary Site下各Site system role
- 是否有相当于Windows的ssh-copy-id?
- untagged – 用于监控Windows网络环境的软件(变更
- windows-server-2012 – 无法在Server 2012上禁用
- ZXing.dll 生成二维码 C# winform net4.5
- Microsoft CA证书模板比预期更早到期
- .net – AssemblyInfo属性如何映射到Win32 VERSI
- windows – 我什么时候应该在位图上调用DeleteOb
- 在Windows上的Ubuntu上运行带有手表的webpack,然
- Windows – Powershell失败了竹子任务,因为-Exec