WindowsクライアントにLinux smb共有上のファイルを10秒以下の間隔で読み取らせた場合、Windowsクライアントはそのファイルの誤った(キャッシュされた?)情報を表示します。
これを複数のシステムで再現しました。
再現する手順の例:
1)Linux samba共有をセットアップします-この例では、Debianを使用してsambaをインストールします。例:
sudo mkdir /test
sudo chmod 777 /test
smb.confの追加:
[test]
read only = no
locking = no
path = /test/
guest ok = yes
2)このディレクトリをWindowsクライアントのドライブとしてマップします(このテストではL:を使用します)。
3)Sambaサーバー上にテキストを含むファイルを作成します
nano /test/test.txt
ORIGINAL
4)Windowsマシンでシンプルなバッチファイルを作成し、5秒ごとにファイルを表示します。
copy con test.bat
@echo off
cls
:1
type L:\test.txt
timeout 5
goto 1
5)バッチファイルを実行します。5秒ごとにORIGINALと表示されます。
6)Linuxサーバーでファイルの内容を変更する
nano /test/test.txt
CHANGED
7)Windowsで実行中のバッチファイルを表示すると、5秒ごとに「ORIGINAL」と表示され、実際のファイルのように「変更」されません。
8)バッチファイルを終了して15秒ほど待つか、タイムアウトを10秒より長い値に変更すると、正しく更新されます。
うまくいけば、これを十分にテストする方法を説明し、概要を説明しました。
誰かがこの動作を再現したり、これを修正する方法を提案したりできますか?
。
。
。
ノート:
Linuxクライアント> Linux SMBホストは、適切なファイルコンテンツを表示します。
Windowsクライアント> Windows SMBホストは、適切なファイルコンテンツを表示します。
具体的には、Windowsクライアント> Linux SMBホストで、10秒以下の更新間隔で適切なファイルコンテンツが表示されません。
私がテストしたすべてのWindowsフレーバー(Win7、Win10、Server2016)は同じ動作を示します。
私のサンバ共有「NT1、SMB2、SMB3」でさまざまなプロトコルをテストしましたが、それらは動作を変更しません。
注:これはWindowsの問題である可能性が高いと思いますが、1週間以内にtechnetまたはスーパーユーザーのいずれからも応答がありません。これはかなり簡単にテストできるはずですが、誰かがこの動作を確認したり、それ以外の状態を述べたりできますか?