Fazendo um tail -f em um arquivo de texto sobre o sshfs não funcionando. Por quê?

6

Eu montei com sucesso uma pasta local em um host ssh remoto.

Agora eu queria fazer um tail -500f my_text_file , mas não está funcionando muito bem. Embora ele abra e mostre o conteúdo do arquivo, a parte -f definitivamente não está funcionando. Deve ter algo a ver com sshfs . Quando eu faço uma conexão ssh normal, funciona maravilhosamente.

Quaisquer dicas sobre como corrigir isso? Estou usando a versão sshfs que se obtém ao fazer um sudo apt install sshfs no Ubuntu.

    
por devoured elysium 25.02.2017 / 18:14

2 respostas

6

tail -f tenta usar um mecanismo de notificação de alteração de arquivo ( inotify ). O SSHFS, como qualquer outro sistema de arquivos FUSE , não suporta este mecanismo. Normalmente tail deve descobrir isso sozinho. Se isso não funcionar, você pode usar a opção não documentada ---disable-inotify (começando com três traços, porque é uma opção não documentada) para forçar o uso do modo de pesquisa que funciona em qualquer sistema de arquivos.

tail ---disable-inotify -n 500 -f my_text_file
    
por 27.02.2017 / 01:11
3

sshfs está usando o protocolo sftp para listar e transferir arquivos e, no protocolo sftp (pelo menos como implementado no OpenSSH), não há possibilidade de notificar seu tail local sobre as atualizações do arquivo remoto.

Como @vovick propôs, você pode solucionar isso usando várias abordagens, por exemplo, usando sondagem. Ou melhor, execute o tail diretamente no servidor remoto (a menos que seja sftp -only).

    
por 25.02.2017 / 20:18

Tags