Eu resolvi isso colocando
oplocks = False
no meu smb.conf sob minhas configurações de compartilhamento.
Se eu tiver um cliente windows ler um arquivo em um compartilhamento smb do Linux em um intervalo < = 10 segundos, o cliente windows mostrará informações incorretas (armazenadas em cache?) desse arquivo.
Eu reproduzi isso em vários sistemas.
Exemplo de etapas para reproduzir:
1) configure o linux samba share - para este exemplo, usando o Debian e instalando o samba. exemplo:
sudo mkdir /test
sudo chmod 777 /test
adição de smb.conf:
[test]
read only = no
locking = no
path = /test/
guest ok = yes
2) Mapeie este diretório como uma unidade em um cliente Windows (esse teste usará L:)
3) crie um arquivo com algum texto no servidor samba
nano /test/test.txt
ORIGINAL
4) criar arquivo em lote simples no Windows para ver o arquivo a cada 5 segundos:
copy con test.bat
@echo off
cls
:1
type L:\test.txt
timeout 5
goto 1
5) executar arquivo em lote, ele deve mostrar ORIGINAL a cada 5 segundos.
6) no servidor linux, altere o conteúdo do arquivo
nano /test/test.txt
CHANGED
7) ver o arquivo de lote em execução no Windows, ele ainda vai dizer "ORIGINAL" a cada cinco segundos, e não "MUDADO" como o arquivo real tem.
8) terminar o arquivo de lote e aguarde ~ 15 segundos, ou alterar o tempo limite para algo > 10 segundos, e será atualizado corretamente.
Espero ter explicado e descrito como testar isso suficientemente.
Alguém pode reproduzir esse comportamento e / ou sugerir como corrigir isso?
.
.
.
NOTAS:
Cliente Linux > O host SMB do Linux mostra o conteúdo adequado do arquivo.
Cliente do Windows > O Windows SMB Host mostra o conteúdo adequado do arquivo.
É especificamente o Windows Client > Host Linux SMB que não mostra o conteúdo de arquivo adequado em um intervalo de atualização de < = 10 segundos.
Todas as versões do Windows com as quais testei (Win7, Win10, Server2016) exibem o mesmo comportamento.
Eu também testei protocolos diferentes no meu compartilhamento de samba 'NT1, SMB2, SMB3' e eles não mudam o comportamento.
OBSERVAÇÃO: Acredito que esse seja provavelmente um problema do Windows, mas não recebi nenhuma resposta em technet ou superusuário em uma semana. Isso deve ser bastante fácil de testar, alguém pode confirmar esse comportamento ou afirmar o contrário?
Eu resolvi isso colocando
oplocks = False
no meu smb.conf sob minhas configurações de compartilhamento.
Tags command-line windows samba linux