A versão de tail
nas versões do coreutils anteriores a 8.26 parece ter problemas para continuar um arquivo cuja pasta foi excluída. Você pode usar less
:
less --follow-name +F data/log/servicemix.log
Estou usando a cauda com a opção --follow=name
para assistir meus arquivos de log na minha instância de servicemix (caminho = ${smx_home}/data/log/servicemix.log
).
ServiceMix tem um recurso 'legal' para reiniciar limpo com servicemix clean
que inicia novo sem cache e parece que também remove todo o diretório $ {smx_home} / data.
Quando a pasta e o arquivo de log são excluídos, a mensagem é exibida:
tail: data/log/servicemix.log: No such file or directory
e eu tenho que apertar ctrl-C e reiniciar meu comando tail como
tail --follow=name data/log/servicemix.log
O problema ocorre porque o 'início limpo' do ServiceMix remove o diretório inteiro e não apenas o arquivo e o inode inicial é inválido.
Existe alguma maneira de fazer a cauda para se reconectar ao log excluído?
Se a cauda não funcionar, existe alguma outra alternativa (por exemplo, com more
ou less
)?
ATUALIZAÇÃO:
Também testei várias combinações com -F
--follow
e --retry
tail --follow=name --retry data/log/servicemix.log
e isso não está funcionando também.
Minha versão final é
tail (GNU coreutils) 8.4
A versão de tail
nas versões do coreutils anteriores a 8.26 parece ter problemas para continuar um arquivo cuja pasta foi excluída. Você pode usar less
:
less --follow-name +F data/log/servicemix.log
Você adiciona a opção --retry
a --follow=name
. Ou use o atalho para esta combinação -F
. Você verá um erro que perdeu o arquivo, mas ele encontrará o novo arquivo no novo diretório após a criação.
Verifique sua página de manual para obter informações completas.
Note que, para uma versão específica da cauda, isso não é possível devido a um bug.
Quando o diretório for removido, a cauda do comando não poderá se conectar novamente ao arquivo. Eu era capaz de reproduzir isso antes em uma configuração mais antiga, mas tentando a resposta acima na minha versão atual, ele funciona. Então, se a resposta acima não funcionar para você, verifique a versão da cauda.