我有一个安装在windows share / mnt / somedire /上的linux盒子,它指向一个Windows服务器。我有另一个Windows应用程序将xml文件写入Windows共享。然后,linux框上的ESB应用程序使用mount上的xml文件。
当通过windows(记事本或notepadd ++)生成和查看xml文件时,它们没问题。当通过cat,vi等命令通过linux查看xml的最后5或6行时,它们是同一个文件。
之前有没有人见过这个,你能告诉我如何解决这个问题吗?
答案 0 :(得分:0)
当您写入文件时,操作系统不会立即写入磁盘 - 它会写入多级缓存:文件系统缓存,块缓存,设备缓存等。
定期地,缓存被“刷新” - 写入底层设备。例如,umount
就是这样。
因此,当您的Windows应用程序将一些XML写入文件时 - 它会写入NTFS缓存。在Windows上读取此文件将通过相同的缓存完成,这就是它在Windows上保持一致的原因。但是你的Linux机箱对该缓存一无所知 - 它有自己的缓存。
要避免此问题,您应该在Windows上使用直接I / O编写。
答案 1 :(得分:0)
好像你的桑巴坐骑有问题。你的数据在Linux上没有得到冲洗。
尝试卸载并重新安装您的samba共享。