Como colocar um arquivo na rede?

5

Como posso usar tail -f de um arquivo pela rede, digamos, em \192.168.2.130\public\print.log ?

Eu tentei as variações dos seguintes itens:

  • tail -f //192.168.2.130/Southpaw/Tactic/print.log que errou dizendo tail: cannot open '//192.168.2.130/Southpaw/Tactic/print.log' for reading: No such file or directory
  • Montou o caminho usando o mount -t cifs e, em seguida, tentou tail -f , mas isso também não está funcionando, o que significa que ele não exibe as atualizações feitas no arquivo.
por Bleeding Fingers 11.12.2013 / 13:44

4 respostas

6

Continue tentando com cifs montados. E apenas use o tail com o seguinte parâmetro:

tail --retry --follow=name yourfile

Assim, tail segue o nome do arquivo e não o decriptor, e combinado com --retry ele tenta novamente, mesmo que o arquivo esteja inacessível por algum tempo.

    
por 11.12.2013 / 14:09
2

Isso parece ser um bug no módulo do kernel cifs . Pode ser que seja corrigido em uma versão mais recente do kernel do que você usa. Tente o parâmetro directio mount para contornar o bug (isso pode diminuir bastante a performance do sistema de arquivos).

Usar watch tail print.log também pode ser uma solução. Exibe as 10 últimas linhas do arquivo a cada 2 segundos.

    
por 11.12.2013 / 14:09
0

O protocolo smb é arcaico com um monte de extensões adicionadas. Ele não foi projetado para lidar com seu fluxo de trabalho e ninguém adicionou suporte a ele. use um hack como o --follow = name na cauda do gnu ou um protocolo diferente. Eu estaria inclinado a fazer a cauda no servidor e usar o netcat para transporte de rede, a menos que o servidor seja windows, caso em que eu faria alguns testes, ou tentaria encontrar outro servidor.

    
por 11.12.2013 / 17:00
0

No meu caso, o parâmetro cache=none ajudou.

Eu montei o compartilhamento do Windows usando este comando:

sudo mount.cifs //IP_ADDRES/logs3 /tmp/logs3 -o user=user,password=pass,ro,nounix,iocharset=utf8,file_mode=0777,cache=none
    
por 19.03.2015 / 11:28

Tags