- Dave McKay
@TheGurkha
- 28 de janeiro de 2020, 8:00 EDT
O Linux tail
comando exibe os dados do final de um arquivo. Ele pode até mesmo Exibir atualizações que são adicionadas a um arquivo em tempo real. Mostramos-te como usá-lo.o systemd matou a cauda?
o comando tail
mostra-lhe os dados do fim de um ficheiro., Normalmente, novos dados são adicionados ao fim de um arquivo, então o comando tail
é uma maneira rápida e fácil de ver as adições mais recentes a um arquivo. Ele também pode monitorar um arquivo e exibir cada entrada de texto novo para esse arquivo como eles ocorrem. Isso faz com que seja uma grande ferramenta para monitorar arquivos de log.
muitas distribuições Linux modernas adotaram o systemd
system and service manager. Este é o primeiro processo executado, tem o processo ID 1, e é o pai de todos os outros processos. Este papel costumava ser tratado pelo antigo sistema init
.,
juntamente com esta mudança veio um novo formato para arquivos de log do sistema. Não mais criados em texto simples, sob systemd
eles são registrados em um formato binário. Para ler esses arquivos de log, você deve usar o utilitário journactl
. O comando tail
funciona com formatos de texto simples. Ele não lê arquivos binários. Então isso significa que o comando tail
é uma solução em busca de um problema? Ainda tem alguma coisa para oferecer?,
Há mais no comando tail
do que mostrar atualizações em tempo real. E por essa matéria, ainda há uma abundância de arquivos de log que não são gerados pelo sistema e ainda são criados como arquivos de texto simples. Por exemplo, os arquivos de log gerados pelas aplicações não mudaram seu formato.
usando tail
passa o nome de um ficheiro para tail
e irá mostrar-lhe as últimas dez linhas desse ficheiro. Os arquivos de exemplo que estamos usando contêm listas de palavras ordenadas., Cada linha é numerada, por isso deve ser fácil seguir os exemplos e ver o efeito que as várias opções têm.
tail word-list.txt
Para ver um número diferente de linhas, use o -n
(número de linhas) opção:
tail -n 15 word-list.txt
na Verdade, você pode dispensar o “-n”, e é só usar um hífen “-” e o número. Certifique-se de que não há espaços entre eles. Tecnicamente, este é um formulário de comando obsoleto, mas ainda está no man page, e ainda funciona.,
tail -12 word-list.txt
Usando a cauda Com Vários Arquivos
Você pode ter tail
trabalhar com vários arquivos de uma vez. Basta passar os nomes dos ficheiros na linha de comandos:
tail -n 4 list-1.txt list-2.txt list-3.txt
é mostrado um pequeno cabeçalho para cada ficheiro, para que saiba a que ficheiro pertencem as linhas.
mostrando linhas desde o início de um ficheiro
o +
(Contagem desde o início) modificador faz tail
mostrar linhas desde o início de um ficheiro, começando com um número de linha específico., Se o seu arquivo é muito longo e você escolher uma linha perto do início do arquivo, você vai obter um monte de saída enviado para a janela de terminal. Se for esse o caso, faz sentido canalizar a saída de tail
para less
.
tail +440 list-1.txt
pode page através do texto de forma controlada.,
Porque há de acontecer para ser 20,445 linhas neste arquivo, o comando é o equivalente a usar a “-6” opção:
tail +20440 list-1.txt
a Utilização de Bytes Com cauda
Você pode dizer tail
usar deslocamentos em bytes, em vez de linhas utilizando -c
(bytes) opção. Isto poderia ser útil se você tiver um arquivo de texto que foi formatado em registros de tamanho regular. Note que um personagem newline conta como um byte., Este comando irá exibir o último 93 bytes no arquivo:
tail -c 93 list-2.txt
Você pode combinar o -c
(bytes) opção com o +
(a contar a partir do início do arquivo) modificador, e especificar um deslocamento em bytes contado a partir do início do arquivo:
tail -c +351053 list-e.txt
Tubulação Em cauda
Antes, nós canalizada a saída a partir de tail
dentro de less
. Também podemos canalizar a saída de outros comandos para tail
.,
Para identificar os cinco ficheiros ou pastas com o mais antigo horas de modificação, use o -t
(classificação por data de modificação) opção com ls
, e canalizar a saída em tail
.
ls -tl | tail -5
The head
command lists lines of text from the start of a file. Podemos combinar isso comtail
para extrair uma seção do arquivo. Aqui, estamos usando o comando head
para extrair as primeiras 200 linhas de um arquivo., Isto está a ser canalizado para tail
, que está a extrair as últimas dez linhas. Isto dá-nos linhas 191 até à linha 200. Isto é, as últimas dez linhas das primeiras 200 linhas:
head -n 200 list-1.txt | tail -10
Este comando lista os cinco processos mais famintos de memória.
ps aux | sort -nk +4 | tail -5
Let’s break that down.
o comando ps
mostra informações sobre os processos em execução. As opções utilizadas são:
- a: listar todos os processos, não apenas para o usuário atual.
- u: mostra uma saída orientada para o utilizador.,
- x: listar todos os processos, incluindo aqueles que não estão em execução dentro de um TTY.
o sort
o comando ordena o resultado de ps
. As opções que estamos usando com sort
são:
- n: Ordenar numericamente.
- k +4: Ordenar na quarta coluna.
o comando tail -5
mostra os últimos cinco processos a partir do resultado ordenado. Estes são os cinco processos mais famintos de memória.,
usar o tail para rastrear arquivos em tempo Real
rastrear novas entradas de texto chegando em um arquivo-geralmente um arquivo de log-é fácil com tail
. Passa o nome do ficheiro na linha de comandos e usa a opção -f
(follow).
tail -f geek-1.log
À medida que cada nova entrada de registo é adicionada ao ficheiro de registo, a cauda actualiza a sua visualização na janela do terminal.
você pode refinar a saída para incluir apenas linhas de particular relevância ou interesse., Aqui, estamos usando grep
para mostrar apenas as linhas que contêm a palavra “média”:
tail -f geek-1.log | grep average
a seguir as alterações em dois ou mais arquivos, passar os 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 qual arquivo o texto veio.
a visualização é atualizada cada vez que uma nova entrada chega em um arquivo seguido. Para especificar o período de actualização, use a opção -s
(período de latência)., Isto diz a tail
para esperar um número de segundos, cinco neste exemplo, entre verificações de arquivos.
tail -f -s 5 geek-1.log
reconhecidamente, você não pode dizer olhando para uma imagem, mas as atualizações do arquivo estão acontecendo uma vez a cada dois segundos. Os novos itens de arquivos estão sendo exibidos na janela do terminal uma vez a cada cinco segundos.
Quando estiver a seguir as adições de texto a mais de um ficheiro, poderá suprimir os cabeçalhos que indicam de que ficheiro de registo o texto vem., Use a opção-q
(quiet) para fazer isto:
tail -f -q geek-1.log geek-2.log
a saída dos ficheiros é mostrada numa mistura de texto sem costura. Não há nenhuma indicação de que Arquivo de registro cada entrada veio.
tail Still Has Value
Although access to the system log files is now provided by journalctl
, tail
still has plenty to offer. Isto é especialmente verdadeiro quando é usado em conjunto com outros comandos, por piping para dentro ou para fora de tail
.,
systemd
pode ter mudado a paisagem, mas ainda há um lugar para utilitários tradicionais que se conformam com a filosofia Unix de fazer uma coisa e fazer bem.Dave McKay usou pela primeira vez computadores quando a fita de papel perfurado estava em voga, e ele tem estado programando desde então. Depois de mais de 30 anos na indústria de TI, ele é agora um jornalista de tecnologia em tempo integral., Durante sua carreira, ele trabalhou como programador freelance, gerente de uma equipe internacional de desenvolvimento de software, um gerente de projeto de serviços de TI, e, mais recentemente, como um oficial de proteção de dados. Dave é um evangelista Linux e defensor de código aberto.Read Full Bio ”