linux.playground

trilha / arco 1 · onde eu estou

o que é less e o que ele faz

o log tem 40 mil linhas e o cat jogou todas na sua tela. a que importava passou voando. o que você queria era ler uma tela por vez, procurar e sair.

em poucos minutos: o que o less faz, as teclas que importam, e o erro de seguir um log que já foi trocado. a pílula fica no final.

o vídeo desta aula sai em breve.
a aula já funciona: lê, treina no terminal e faz o quiz.

escolhe a camada

em uma frase

é folhear um livro em vez de despejar as páginas no chão. você vai e volta, procura, e fecha quando quer.

para quem está começando

abre o arquivo e mostra uma tela por vez. espaço avança, b volta, / procura, q sai. ele não edita nada e não carrega o arquivo inteiro de uma vez.

a fonte da verdade

o less lê o arquivo sob demanda, só o pedaço que você pede. o F (follow) fica com o arquivo que ele abriu, o descritor, e não com o nome. se o nome passar a apontar para outro arquivo, ele não percebe.

o número por trás do nome

o inode é o número do arquivo no disco. o ls -i mostra. quando o log rotaciona, o nome app.log vai para um arquivo novo, com inode novo, e o antigo vira app.log.1 com o inode de sempre.

mac vs linux

no mac o less também existe, mas é uma versão mais antiga. o --follow-name pode não existir lá: confira com less --version.

agora você

terminal fechado

um linux de verdade, só seu, apagado quando você sai.

  1. abre o app.log no less. use a seta e o espaço para andar, e q para sair.

    less app.log

  2. o app.log tem uma linha enorme. abre de novo com -S, que corta a linha em vez de quebrar. q para sair.

    less -S app.log

  3. abre o app.log seguindo o fim, como um tail -f. ctrl+c para parar de seguir, q para sair.

    less +F app.log

  4. o comando rotacionar faz o que o logrotate faz: renomeia o app.log para app.log.1 e cria um app.log novo, vazio. o less +F estava seguindo o app.log. depois do rotacionar, ele segue qual arquivo?

  5. abre de novo mandando o F seguir o nome do arquivo, não o arquivo aberto. ctrl+c e q para sair.

    less --follow-name +F app.log

cuidado: o F do less segue o arquivo, não o nome

o arquivo ~/vigiar.sh abre o app.log no less seguindo o fim, para você vigiar o servidor. só que o F do less segue o arquivo que abriu, não o nome. quando o log rotaciona, o script fica parado num arquivo velho e não mostra mais nada. passo 1: leia o script. rode cat ~/vigiar.sh e repare no que ele chama. passo 2: conserte. abra com nano ~/vigiar.sh. para salvar: ctrl+o e enter. para sair: ctrl+x. passo 3: teste. rode ~/vigiar.sh, veja o less esperando, e saia com ctrl+c e q.

a pílula

less arquivolê por telas: espaço, b, /, q
less -S arquivocorta a linha longa em vez de quebrar
less --follow-name +F arquivosegue o fim e acompanha a rotação

F segue o arquivo aberto, não o nome.

quiz

1. você quer ler um log de 40 mil linhas e procurar ERROR. qual a melhor ferramenta?
2. o log rotacionou durante um less +F. por que ele para de mostrar linhas novas?
3. o que o -S faz no less?

próxima: o que são head e tail e o que eles fazem