Buscar

11 Comandos AWK Linux que todo SysAdmin precisa conhecer

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 5 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Prévia do material em texto

11 Comandos AWK que todo SysAdmin Linux precisa conhecer
AWK é uma linguagem de programação orientada de dados concebido para processar dados baseados em texto, seja em
arquivos ou fluxos de dados (Stream).  É um exemplo de uma linguagem de programação que utiliza extensivamente o tipo de
dados sequência de caracteres, matrizes associativas (ou seja, matrizes indexadas por sequências chave), e também
expressões regulares.
11 Comandos AWK que você precisa conhecer (Alguns destes comandos precisam de privilégios elevados e precisam
se precedidos de sudo)
1: Exibir uma lista dos comandos que você mais utiliza:
2: Exibir um bloco de texto com AWK
Se você ficou um pouco perdido com a utilidade deste comando veja este exemplo: Para ver apenas as informações do
processador do computador use-o assim:
3: Encontrar informação geográfica de um determinado endereço ip:
history | awk '{a[$2]++}END{for(i in a){print a[i] " " i}}' | sort -rn | head
awk '/delimitador_inicial/,/delimitador_final/' arquivo.txt
dmidecode | awk '/Processor Information/,/Part Number/'
*Obs: Neste exemplo utilizamos o IP do google.com.br (172.217.29.78)
4: Remover entradas duplicadas de um arquivo sem reordenar as linhas na
saída:
*Algo muito útil para analisar log de sistema com excesso de linhas redundantes.
5: O comando irá obter a lista e criar as regras para você, se você quer que o
comando bloqueie automaticamente adicione "| sh" no final do comando não
esqueça de adicionar este comando no Cron para ser executado de hora em
hora para ficar ainda melhor ;)
*Obs: A BlackList é formada por uma lista compilada de todos os hosts maliciosos conhecidos no momento (botnets, spammers,
bruteforcers, etc.) esta lista é atualizado a cada hora.
lynx -dump http://www.ip-adress.com/ip_tracer/172.217.29.78 | awk '/IP country
code/,/Local time in/' | tail -12 | sort | uniq -c | sort -n | awk {'print
$2,$3,$4,$5,$6,$7,$8,$9'}
awk '!x[$0]++' arquivo.txt
wget -qO – http://infiltrated.net/blacklisted | awk '!/# | [a-z]/&&/./{print "iptables
-A INPUT -s "$1" -j DROP"}'
6: Analisar o log de acesso do apache para os endereços IPs mais comuns:
7: Mostra um histograma dos momentos mais congestionados de um arquivo
de log:
tail -15000 access_log | awk '{print $1}' | sort | uniq -c | sort -n | tail
cat /var/log/syslog | awk '{print substr($0,0,12)}' | uniq -c | sort -nr | awk
'{printf("n%s ",$0) ; for (i = 0; i<$1 ; i++) {printf("*")};}'
8: Mostra rapidamente quais os usuários utilizaram o sistema recentemente:
9: Mostra o numero de conexões abertas por IP e as portas
usadas:
*Obs: Está linha de comando serve para executar em seu servidor,  quando você achar que seu servidor está sob ataque. O
comando vai imprimir uma lista de conexões abertas para o servidor e os classifica por quantidade.
10: Efetuar checagem dos seus e-mails não lidos do Gmail pela linha de
comando:
Obs: O problema deste comando é que se a sua senha tiver algum metacaracterecomo . ? * + ^ $ | [ ] { } ( ), você terá que
"escapar" colocando "" antes de cada um deles, ou eles vão mudar todo o contexto do comando! ;)
last  | grep -v "^$" | awk '{ print $1 }' | sort -nr | uniq -c
netstat -ntu | awk '{print $5}' | cut -d: -f1,2 | sort | uniq -c | sort -n
curl -u username:password –silent "https://mail.google.com/mail/feed/atom” |
tr -d 'n' | awk -F " '{for (i=2; i<=NF; i++) {print $i}}' | sed -n "s/(.*)</title.*name>
(.*)</name>.*/2 – 1/p"
11: Listar o número e tipo de conexões de rede ativas:
12: Mostra o tamanho dos diretórios, os maiores primeiro e divididos entre ‘Kb,
Mb e Gb’:
netstat -ant | awk '{print $NF,$3,$4,$5}' | grep -v '[a-z]' | sort | uniq -c
du -d 1 | sort -r -n | awk '{split("KB(s) MB(s) GB(s)",v); s=1; while($1>1024)
{$1/=1024; s++} print int($1)" "v[s]"t"$2}'

Outros materiais