Quero monitorar o arquivo de log do meu aplicativo que, no entanto, não funciona localmente, mas em uma plataforma SaaS e é exposto por HTTP e WebDAV. Portanto, um equivalente de tail -f que funciona para URLs faria um ótimo trabalho para mim.
PS Se você conhece outras ferramentas que podem monitorar arquivos remotos por HTTP, também pode ser útil. obrigado
wget -N http://somewhere/something
, que fará o download do arquivo apenas se for mais recente do que o que você baixou antes ou usarwget -O - http://somewhere/something
para redirecionar o arquivo para o stdout.Respostas:
Pode haver uma ferramenta específica para isso, mas você também pode fazê-lo usando o wget. Abra um terminal e execute este comando:
Isso fará o download do arquivo de log a cada dois segundos e o salvará
log.txt
anexando a saída ao que já existe (-c
significa continuar o download e-a
anexar a saída ao nome do arquivo fornecido). O-o
redireciona as mensagens de erro para/dev/null/
.Portanto, agora você tem uma cópia local do log.txt e pode executar
tail -f
:fonte
tail -f
não atualiza as alterações no arquivo, a menos que haja algum outro processo solicitando ativamente ao servidor atualizações de diretório (uma planíciels
parece suficiente). O problema étail -f
confiar no inotify e o inotify parece não funcionar com o davfs2.tail
não depende de inotify. Ele simplesmente lê o arquivo, procura novamente e lê novamente. Se não funcionar bem com o davfs, isso dependerá da forma como o davfs funciona. Presumivelmente, ele só atualiza informações quando algo está lendo ativamente o diretório e, comotail
mantém o arquivo aberto, isso não o aciona. Ou algo nesse sentido.Eu respondi a mesma pergunta aqui com um script de shell completo que pega a URL como argumento e
tail -f
é isso. Aqui está uma cópia dessa resposta literalmente:Isso fará isso:
Não é muito amigável no servidor web. Você pode substituir o
true
comsleep 1
por ser menos intensivo em recursos.Assim
tail -f
, você precisa^C
quando terminar de assistir a saída, mesmo quando a saída estiver concluída.fonte
a opção curl com faixa em combinação com o relógio pode ser usada para conseguir isso:
Por exemplo
Isso recuperará os últimos 2000 bytes do log a cada 30 segundos.
Nota: para https autoassinado, use a opção --insecure curl
fonte