Makotaum's Blog

Um local para compartilhar problemas e soluções técnicos enfrentados no dia a dia

Script que pega host, mac e ip do dhcpd.conf

Posted by makoto on November 5, 2009

Para casos em que o dhcpd.conf delimita ip e mac para determinados hosts, criei uma script que gera um arquivo pronto para uso em diversos casos como por exemplo povoar base de dados, uso no sistema via interface web, mac filter, etc.
A saída da script será :
host mac ip
Onde cada termo é separado por espaço, facilitando o reconhecimento de padrões para criação de scripts usando regex e cada ocorrência é separada por uma quebra de linha.

 

——— script.sh ———
#!/bin/sh
# 1-rodo o arquivo e em sua saída
cat dhcpd.conf |
# 2-para todas as saídas que não começam com # (ou seja,as linhas que não são comentários)
grep -v ^# |
# 3-nas linhas que tem host, ethernet e fixed-address mando imprimir com um espaço entre eles e nas linhas com fixed-address coloco uma quebra de linha
awk ‘/host/ {printf $2 ” “} /ethernet/ {printf $3 ” “} /fixed-address/ {print $2} ‘ |
# 4-retiro os ; nos finais de linha
sed ‘s/;//g’  |
# 5-retiro as linhas em branco
awk ‘NF>0’ >> dhcpeditado

——— script.sh ———

O grep -v irá inverter o resultado das ocorrências. O ^# indica todas as linhas que começam com “#”.
grep -v ^#

O awk irá pegar as linhas onde existem a <ocorrência> e imprimir a coluna X. Onde o delimitador padrão de cada coluna (nesse caso) é o espaço.
awk ‘/<ocorrência>/ {print $X}’

O sed irá trocar as ocorrências do que eu quero por o que eu quero trocar (nesse caso eu quero trocar por nada).
O /g no final serve para trocar todas as ocorrências das linhas. Se eu não o colocasse, ele iria trocar somente a primeira ocorrência de cada linha.
sed ‘s/<o_que_eu_quero_trocar>/<por_o_que>/g’

3 Responses to “Script que pega host, mac e ip do dhcpd.conf”

  1. Your style is really unique in comparison to other folks
    I’ve read stuff from. Thanks for posting when you have the opportunity, Guess I’ll just bookmark this web site.

  2. Great blog! Is your theme custom made or did you download it from somewhere?
    A theme like yours with a few simple adjustements would really make my blog shine.

    Please let me know where you got your theme.
    Kudos

  3. pixnet.net said

    It’s appropriate time to make some plans for the future and it is time to be happy. I have read this post and if I could I desire to suggest you some interesting things or tips. Perhaps you can write next articles referring to this article. I desire to read more things about it!

Leave a comment