微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Windows / Linux之间的同步同步在传输期间随机挂起

我们经常将交互式信息亭cpu部署到远程phsyical站点,并且我开发了一个内容更新应用程序,在每个信息亭(Windows 7 Pro)和托pipeCMS(在linode.com上运行的虚拟ubuntu服务器)之间执行媒体资产的夜间同步。 。 内容更新程序以C#/。NET编写,并使用Process.Start()生成一个Unisonsubprocess。 Unisoncon@R_502_6408@uration为使用私钥通过SSH连接到远程服务器。

我们遇到的问题是,当从ContentUpdater.exe生成subprocess时,Unison通常会在传输期间停止与远程服务器的通信,并无限期地挂起。 有没有简单的repro – 有时它的工作,往往不是挂起。 更大的更新(400MB +)似乎更脆弱,但这比其他任何更多的猜测。 当挂起时,客户端(Windows 7)上的Unison进程仍然显示25%的cpu使用率,服务器也显示正在运行的同步进程 – 只有没有networking活动。 我知道它是连接的,因为它总是开始这个​​过程,并通过转移中途,但它永远不会在同一个地方挂两次。 我正在运行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

为了logging,我最初创作了内容更新程序以使用rsync(通过Windows上的cygwin),但遇到了同样的问题。 为了查看ssh传输是否是问题的一部分,我尝试在服务器模式(rsyncd)中使用rsync,但是挂起仍然继续。

服务将文件写入不同的path

如何计算C#.NET中的cpu负载平均值

强烈地指出三个相互引用的程序集

为什么在通过Shell32读取公共快捷方式时遇到E_ACCESSDENIED?

单声道WCF InstanceContextMode不工作

在这一点上,我彻底难倒了。 这个问题也在其他服务器上重现,所以我认为这是在Windows的一面。 我也倾向于认为这个问题只发生在另一个进程(更新:我刚刚得到repro当从命令行运行)从Process.Start()调用Unison / rsync时 – 似乎并不从命令行直接运行时失败。 Unison / rsync也不会出错,所以没有日志文件可以检查(除非有人知道远程服务器上的某种服务器端跟踪或日志文件,我可以检查 – 完全公开:我是一个FreeBSD极客,知道在引擎盖下有一点关于Ubuntu的珍贵)。

提前感谢任何和所有洞察/想法/解决scheme!

最好

在C#中使用特定服务的cpu使用情况

如何避免不同用户的多个实例,但在单个用户会话上允许多个实例

安装依赖的Windows服务

从loginID获取用户SID(Windows XP和更高版本)

C#挂钩Windows进程来检查debugging进程

我有这个问题。 花了我几天的时间来解决它。 最后,加入-halfduplex解决了我的问题。

正如文件中所述:

halfduplex当此标志设置为true时,Unison网络通信被强制为半双工(客户端和服务器不会同时发送数据)。 如果您的网络链接不稳定,这可能会有所帮助。 由于可能导致死锁的Unison当前实现的限制,与Windows机器同步时,通信始终为半双工。

就我而言,我是在Windows / OSX之间进行同步。

我确认“halfduplex = true”设置解决了我悬置的问题。 我已经安装了Win7和OSX“客户端”和Linux服务器作为中央同步点。 所有的客户端与服务器同步。

当我将Mac客户端引入图片后,问题就开始了,因为更新开始发生在两个方向上。 在Unison配置文件中设置“halfduplex = true”解决了我的问题。

奇怪的是,Unison同步了两个Win7客户端和Linux服务器之间的一个小得多的目录,但是在这种情况下文件要小得多。

只是在打个招呼 我有两个Windows 7计算机之间使用rsync / cygwin相同的问题。 网上较旧的讨论表明,这个问题只影响SSH连接,但rsync守护进程方法失败了。 有消息假装,应该重新编译rsync从源unsetting HAVE_SOCKETPAIR,这就是说rsync / ssh的工作。 我还没有到处去尝试。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐