Como usar o comando tail no Linux

Conteúdo

Uma janela de terminal exibindo um prompt Bash em um laptop Linux estilo Ubuntu.

El Linux tail O comando exibe dados do final de um arquivo. Pode até mostrar atualizações que são adicionadas a um arquivo em tempo real. Nós mostramos como usá-lo.

¿Systemd Kill Tail?

a tail O comando exibe dados do final de um arquivo. Em geral, novos dados são adicionados ao final de um arquivo, pelo que tail O comando é uma maneira rápida e fácil de ver as adições mais recentes a um arquivo. Você também pode monitorar um arquivo e exibir cada nova entrada de texto nesse arquivo conforme ela ocorre.. Isso o torna uma ótima ferramenta para monitorar arquivos de log..

Muitas distribuições Linux modernas adotaram o systemd Gerente de Sistemas e Serviços. Este é o primeiro procedimento executado, tenho Id de processo 1e é o pai de todos os outros processos. Esta função costumava ser administrado por anciãos init sistema.

Junto com essa mudança, veio um novo formato para arquivos de log do sistema. Não é mais criado em texto simples, sobre systemd são gravados em formato binário. Para leia esses arquivos de log, deve usar a journactl Utilitário. a tail O comando funciona com formatos de texto simples. Não lê arquivos binários. Então, Isso significa que tail É o comando uma solução em busca de um obstáculo? Você ainda tem algo a oferecer?

Tem mais do que isso tail comando para mostrar atualizações em tempo real. E na realidade, ainda existem muitos arquivos de log que não são gerados pelo sistema e ainda são criados como arquivos de texto simples. Como um exemplo, arquivos de log gerados por Formulários eles não mudaram seu formato.

Usando cola

Passe o nome de um arquivo para tail e vai mostrar as últimas dez linhas desse arquivo. Os arquivos de exemplo que estamos usando contêm listas de palavras ordenadas. Cada linha é numerada, então deve ser fácil seguir os exemplos e ver o efeito que as várias opções têm.

cauda lista de palavras.txt

Para ver um número diferente de linhas, usar el -n (número de linhas) opção:

cauda -n 15 lista de palavras.txt

Na realidade, você pode fazer sem o "-n" e usar um hífen "-" e o número. Certifique-se de que não haja lacunas entre eles. Tecnicamente, este é um formulário de comando obsoleto, mas ainda está no página mane ainda funciona.

cauda -12 lista de palavras.txt

Usando cauda com muitos arquivos

Você pode ter tail trabalhar com muitos arquivos ao mesmo tempo. Basta passar os nomes dos arquivos na linha de comando:

cauda -n 4 lista-1.txt lista-2.txt lista-3.txt

Um pequeno cabeçalho é exibido para cada arquivo para que você saiba a qual arquivo as linhas pertencem.

Visualizando linhas desde o início de um arquivo

a + (conte desde o começo) modificador faz tail mostrar linhas do início de um arquivo, começando em um número de linha específico. Se o seu arquivo for muito longo e você escolher uma linha perto do início do arquivo, você receberá muitos resultados enviados para a janela do terminal. Se for esse o caso, faz sentido canalizar a saída de tail dentro de less.

cauda +440 list-1.txt

Você pode folhear o texto de forma controlada.

Porque eles são 20,445 linhas neste arquivo, este comando é semelhante a usar a opção “-6”:

cauda +20440 list-1.txt

Usando bytes rastreados

Pode dizer tail para usar deslocamentos em bytes em vez de linhas usando o -c (bytes) opção. Isso pode ser útil se você tiver um arquivo de texto formatado em registros de tamanho normal. Observe que um caractere de nova linha conta como um byte. Este comando irá mostrar o mais recente 93 bytes de arquivo:

cauda -c 93 list-2.txt

Você pode combinar o -c (bytes) opção com o + (contar desde o início do arquivo) e especificar um deslocamento em bytes contados desde o início do arquivo:

cauda -c +351053 list-e.txt

Cano na cauda

Anteriormente, canalizamos a saída de tail dentro de less . Também podemos canalizar a saída de outros comandos para tail.

Para identificar os cinco arquivos ou pastas com os tempos de modificação mais antigos, Use o -t (classificar por hora de modificação) opção com ls e canalizar a saída para tail.

ls -tl | cauda -5

a head comando lista as linhas de texto do início de um arquivo. Podemos combinar isso com tail para extrair uma seção do arquivo. Aqui, estamos usando o head comando para extrair o primeiro 200 linhas de um arquivo. Isso é canalizado para tail, que extrai as últimas dez linhas. Isso nos dá as linhas 191 até a linha 200. Em outras palavras, as últimas dez linhas do primeiro 200 linhas:

cabeça -n 200 list-1.txt | cauda -10

Este comando lista os cinco principais processos que consomem memória.

ps para | sort-nk +4 | cauda -5

Vamos analisar isso.

a ps comando exibe informações sobre os processos em execução. As alternativas utilizadas são:

  • uma: Liste todos os processos, não apenas para o usuário atual.
  • sua: Exibe uma saída orientada ao usuário.
  • X: Liste todos os processos, incluindo aqueles que não são executados em um TTY.

a sort comando ordene a saída a partir de ps . As alternativas que estamos usando com sort estão:

  • Norte: Classifique numericamente.
  • k +4: Ordem na quarta coluna.

a tail -5 O comando exibe os últimos cinco processos da saída solicitada. Estes são os cinco processos que consomem mais memória.

Usando cauda para rastrear arquivos em tempo real

Rastreie novas entradas de texto que chegam em um arquivo, geralmente um arquivo de log, é fácil com tail. Passe o nome do arquivo na linha de comando e use o -f (Prosseguir) opção.

tail -f geek-1.log

À medida que cada nova entrada de registro é adicionada ao arquivo de registro, tail atualiza sua exibição na janela do terminal.

Você pode refinar a saída para incluir apenas linhas de relevância ou interesse particular. Aqui, estamos usando grep para mostrar apenas linhas que incluem palavra “média”:

tail -f geek-1.log | grep média

Para rastrear alterações em dois ou mais arquivos, passar nomes de arquivos na linha de comando:

tail -f -n 5 geek-1.log geek-2.log

Cada entrada é marcada com um cabeçalho que mostra de qual arquivo o texto veio.

Saída de tail -f -n 5 geek-1.log geek-2.log

A tela é atualizada toda vez que uma nova entrada chega em um arquivo seguido. Para especificar o período de atualização, Use o -s (período de descanso). Isso diz tail espere alguns segundos, cinco neste exemplo, entre verificações de arquivo.

tail -f -s 5 geek-1.log

É verdade que você não pode dizer olhando para uma captura de tela, mas as atualizações arquivar estão acontecendo uma vez a cada dois segundos. Novas entradas de arquivo estão sendo exibido na janela do terminal uma vez a cada cinco segundos.

Saída de tail -f -s 5 geek-1.log

Quando você rastreia adições de texto a mais de um arquivo, você pode suprimir os cabeçalhos que indicam de qual arquivo de log o texto vem. Use o -q opção (silencioso) para fazer isso:

tail -f -q geek-1.log geek-2.log

A saída dos arquivos é exibida em uma combinação perfeita de texto. Não há indicação de qual arquivo de registro vem de cada entrada.

a cauda ainda tem valor

Mesmo que o acesso aos arquivos de log do sistema agora o forneça journalctl, tail ainda tem muito a oferecer. Isso é especialmente verdadeiro quando usado em conjunto com outros comandos, entrando ou saindo tail.

systemd poderia ter mudado a paisagem, mas ainda há um lugar para utilitários tradicionais que estão em conformidade com a filosofia Unix de fazer uma coisa e fazer certo.

setTimeout(função(){
!função(f,b,e,v,n,t,s)
{E se(f.fbq)Retorna;n = f.fbq = função(){n.callMethod?
n.callMethod.apply(n,argumentos):n.queue.push(argumentos)};
E se(!f._fbq)f._fbq = n;n.push = n;n.loaded =!0;n.version = ’2.0′;
n.queue =[];t = b.createElement(e);t.async =!0;
t.src = v;s = b.getElementsByTagName(e)[0];
s.parentNode.insertBefore(t,s) } (window, documento,'roteiro',
‘Https://connect.facebook.net/en_US/fbevents.js ’);
fbq('iniciar', ‘335401813750447’);
fbq('acompanhar', ‘PageView’);
},3000);

Assine a nossa newsletter

Nós não enviaremos SPAM para você. Nós odiamos isso tanto quanto você.