Estou tentando usar tail -f
para seguir um arquivo de login em uma pasta especificada. Posso fazer isso com o comando simples, tail -f [path to file]
mas existe uma maneira de ter um comando que execute e rastreie o arquivo mais recente/último modificado em uma pasta. Não sou um especialista nesta área, então qualquer ajuda será muito apreciada
Responder1
Você poderia executar os ls -tp | sort | grep -v / | tail -n 1
comandos e colocá-los em umfor
loop para executar o tail -F
comando apenas no arquivo mais recente para monitorá-lo quanto a alterações de conteúdo. Você também pode considerar os ls -tpr | grep -v / | tail -n 1
comandos.
for VAR in $(ls -tp | sort | grep -v / | tail -n 1); do tail -F $VAR; done
ou
for VAR in $(ls -tpr | grep -v / | tail -n 1); do tail -F $VAR; done
Recursos adicionais
-
-t sort by modification time, newest first -p, --indicator-style=slash append / indicator to directories -r, --reverse reverse order while sorting
-
-v, --invert-match Invert the sense of matching, to select non-matching lines. (-v is specified by POSIX .)
-
-n, --lines=[+]NUM output the last NUM lines, instead of the last 10; or use -n +NUM to output starting with line NUM
Responder2
Você poderia usar MultiTail, disponível como pacote padrão em muitas distribuições.
Exemplo 1: Mesclar dois arquivos de log em uma janela com cores diferentes
multitail -ci green /var/log/yum.log -ci yellow -I /var/log/mysqld.log
Exemplo 2: Exibir cinco arquivos de log, mesclando dois em uma coluna
multitail -s 2 -sn 1,3 /var/log/mysqld.log -I /var/log/xferlog /var/log/monitorix /var/log/ajenti.log /var/log/yum.log
Fonte: MultiTail – Monitore vários arquivos simultaneamente em um único terminal Linux.