2014-02-06 1 views
0

Windows 공유/mnt/somedire /에 탑재 된 Linux 상자가 Windows 서버를 가리 킵니다. Windows 공유에 XML 파일을 쓰는 다른 Windows 응용 프로그램이 있습니다. 리눅스 박스의 ESB 응용 프로그램은 마운트 된 xml 파일을 사용합니다.Windows에서 Linux를 통해 볼 때 xml 파일이 손상되었습니다.

xml 파일을 생성하여 Windows (notepad 또는 notepadd ++)를 통해 볼 때 괜찮습니다. cat, vi, etc 명령을 통해 리눅스를 통해 보았을 때 xml의 마지막 5 ~ 6 줄은 빠졌지 만 동일한 파일입니다.

누구든지 전에 본적이 있습니까? 그리고 어떻게 해결할 수 있습니까?

답변

0

당신이 당신의 디스크에 바로 기록하지 않는 파일 OS를 쓸 때 - 그것은 멀티 레벨 캐시에 기록 : 파일 시스템 캐시, 블록 캐시 장치 캐시 등을 주기적으로

을, 캐시는 "플러시"입니다 - 기본 장치에 기록됩니다. 그게 예를 들어 umount입니다.

Windows 응용 프로그램이 일부 XML을 파일에 쓸 때 NTFS 캐시에 씁니다. Windows에서이 파일을 읽는 것은 동일한 캐시를 통해 수행되므로 Windows에서 일관된 이유입니다. 그러나 리눅스 박스는 캐시에 대해 아무것도 모릅니다. 캐시는 자체 캐시를 가지고 있습니다.

이 문제를 방지하려면 Windows에서 직접 I/O로 작성해야합니다.

+0

마운트에 직접 I/O 플래그를 추가했지만 캐시를 '추가하지 않음'옵션을 추가하고 해결하여 해결했습니다. 나를 올바른 방향으로 가리켜 주셔서 감사합니다. – user3279967

0

삼바 마운트에 문제가있는 것처럼 보입니다. Linux에서 데이터가 플러시되지 않습니다.

삼바 공유를 umount하고 다시 마운트하십시오.