NOC online · 24/7Longview, TX · +1 323 412 0665
KinetikatechServers · Security · Websites
PT

Comandos Linux e habilidades de shell

grep: Pesquisando no Linux como um profissional

grep sobrevive a cada atualização do conjunto de ferramentas porque o trabalho nunca muda: encontre as linhas que importam dentro do texto que cresce mais rápido do que qualquer um o limpa. Seu verdadeiro poder é o vocabulário de sinalizadores que transforma uma pesquisa em uma resposta: contexto circundante, listas de nomes de arquivos, correspondências invertidas e códigos de saída nos quais um script de shell pode ramificar. Quando um servidor se comporta mal, a investigação começa com o grep e, mais frequentemente do que qualquer um admite, termina aí também.

Pontos principais

  1. Pesquise recursivamente com propósito: grep -rni 'fail2ban' /var/log --include='*.log' ignora binários e arquivos compactados por conta própria; um simples grep -r over /var/log ensina essa lição de maneira lenta.
  2. O contexto torna as correspondências legíveis: -A 3 mostra as linhas depois, -B 3 antes, -C 5 ambas; -l lista apenas nomes de arquivos, -c conta correspondências por arquivo e -L inverte a lista no que está faltando.
  3. Os códigos de saída fazem parte do contrato: 0 significa correspondente, 1 significa sem correspondência, 2 significa erro; um script que executa grep -q e ignora essa distinção trata o sucesso e o silêncio de forma idêntica.
  4. Listas de arquivos em cadeia com segurança nula: grep -rlZ 'ssl_protocols' /etc/nginx --include='*.conf' | xargs -0 -r ls -l; elimine o emparelhamento Z e -0 e o primeiro nome de arquivo com um espaço interrompe o pipeline.
  5. Use -E como o nível de regex padrão para alternância legível e use -P (lookarounds, \d classes) somente quando você aceitar que é uma extensão GNU que o BSD grep não carregará.
  6. -F trata o padrão como texto literal: mais rápido e imune a metacaracteres regex que aparecem furtivamente a partir de variáveis ​​coladas diretamente de um ticket.
  7. --exclude-dir=.git e --exclude-dir=node_modules mantêm pesquisas recursivas fora de diretórios que existem apenas para retardá-las; soletre nomes explicitamente em scripts, já que a expansão de chaves é uma conveniência do bash, não um recurso do grep.
  8. Mantenha os hábitos separados: --color=auto para conforto interativo, sem cor nos scripts (sequências de escape corrompem logs) e -n (números de linha) ativados para que a próxima pessoa possa encontrar o local que você colou.

Nota de campo

Certa vez, executei um grep -r simples em todo o farm de toras de um cliente às 2 da manhã e obtive quarenta minutos de silêncio pelo meu problema; adicionando --include='*.log' e -l finalizou o ticket na hora. Os hábitos de inclusão e código de saída agora entram antes do padrão.

Perguntas frequentes

Por que o grep às vezes imprime 'correspondências de arquivo binário' em vez da minha linha?

Um byte NUL próximo à correspondência faz com que o GNU grep trate o arquivo como binário; adicione -a para forçar o modo de texto ou -I para ignorar completamente os binários, que é o padrão correto em diretórios de log mistos.

Devo usar ripgrep em vez disso?

ripgrep é mais rápido e ignora arquivos binários e ocultos por padrão, mas grep existe em todas as caixas em que você usará SSH, incluindo imagens de resgate. Aprenda grep primeiro; procure rg onde ele está instalado.

Como faço para pesquisar logs compactados e rotacionados?

zgrep pesquisa arquivos .gz de forma transparente e zstdgrep cobre a rotação de compressores mais recentes para a qual foi alterada; a agulha de ontem geralmente fica dentro de uma delas, então as ferramentas contam como higiene básica.

Como faço para combinar uma palavra, mas não uma palavra mais longa que a contenha?

Use -w para correspondência de palavras inteiras e -x para correspondências de linhas completas; quando os padrões precisam de partes de palavras, classes de caracteres como [Ss]erver fornecem controle preciso sem achatar o caso em todos os outros lugares.

Como a Kinetikatech ajuda com comandos linux e habilidades de shell

Já resolvemos isto centenas de vezes: Os comandos e hábitos de script que decidem se um administrador opera um servidor ou o combate: pesquise, transforme, transfira e supervisione textos e processos com as ferramentas presentes em cada instalação básica. Com Segurança de servidores Linux e Gestão de servidores, você tem o ciclo completo: avaliamos, implementamos, monitoramos 24 horas e respondemos em 30 minutos quando importa.

Falar com um engenheiro

Problema no servidor? Site invadido? Site lento?

Incidentes críticos atendidos em 30 minutos — 24 horas por dia, 7 dias por semana.

Solicitar suporte urgente support@kinetikatech.com