ainda na onda dos scripts…. gerando entradas para ip fixo do dhcpd.conf
uncategorized Sexta-feira, Agosto 8, 2008, 14:47pensando no seguinte causo, alguém solicita que o sysadmin fixe o endereço ip de algumas máquinas, 250 máquinas por exemplo ;)
vamos elaborar um script rapido para resolver esta questão…
primeiro o sysadmin, que não é bobo nem nada, pede que as informações estejam em uma planilha chamada de levantamento.odt, contendo as seguintes informações:
nome do usuario | mac | secretaria | setor | sala | patrimonio
estou pensando em uma maneira simples, existem várias outras abordagens e formas mais eficientes, aqui só dou o exemplo de uma das formas de se fazer com o bom e velho shellscript.
copie e cole o texto o oOo-Calc para um editor de texto puro, por exemplo VIM, substituia TAB por * usando o comando abaixo, se for o VIM.
:%s/^I/*/gc
Esse ^I é o valor que aparece quando voce digita o TAB ali naquele local.
salve como levantamento.txt
o arquivo vai ficar assim
jose.carvalho*00:00:00:00:00:00*spoa*cgmi*001*000001
guto.carvalho*00:00:00:00:00:00*spoa*cmsr*002*000002
agora vamos elaborar um script que vai gerar a entrada para o DHCPD.CONF
crie um arquivo chamado geraDhcp.sh com o conteúdo abaixo:
gutocarvalho@defiant:~$ vim geraDhcpd.sh
#!/bin/bash
# variaveis/constantes
# arquivo com informacoes
fileIn=”levantamento”
# arquivo que sera gerado
fileOut=”levantamento-dhcpd.txt”
# classe
ipClass=”192.168.0″
# ip que vai iniciar
ipRefer=”1″
# funcao que vai gerar as entradas
geraCorpo()
{
for i in `cat $fileIn`;do
nome=$(echo $i |cut -d* -f1)
macaddr=$(echo $i |cut -d* -f2)
secretaria=$(echo $i |cut -d* -f3)
setor=$(echo $i |cut -d* -f4)
sala=$(echo $i |cut -d* -f5)
patrimonio=$(echo $i |cut -d* -f6)
echo “ # usuario $nome, sala $sala, secretaria $secretaria, setor $setor, patrimonio $patrimonio” |tee -a $fileOut
echo “ # criado por: tecguto” | tee -a $fileOut
echo “ host $secretaria$setor$patrimonio {” |tee -a $fileOut
echo “ hardware ethernet $macaddr;” |tee -a $fileOut
let ipRefer++
echo “ fixed-address $ipClass.$ipRefer;” |tee -a $fileOut
echo “ }” |tee -a $fileOut
echo -e “\n” |tee -a $fileOut
done
}
geraCorpo
salve o arquivo, e vamos rodá-lo.
gutocarvalho@defiant:~$ bash geraDhcp.sh
a saída será esta
# usuario jose.carvalho, sala 001, secretaria SPOA, setor CGMI, patrimonio 000001
# criado por: tecguto
host SPOACGMI000001 {
hardware ethernet 00:00:00:00:00:00;
fixed-address 192.168.0.1;
}
# usuario guto.carvalho, sala 002, secretaria SPOA, setor CMSR, patrimonio 000002
# criado por: tecguto
host SPOACMSR000002 {
hardware ethernet 00:00:00:00:00:00;
fixed-address 192.168.0.2;
}
e tá pronto, redireciona a saída para seu DHCPD.CONF e acabou a tarefa.
:)
Este post já está no wiki, é melhor copiar e colar de lá, pois está mais organizado.
http://gutocarvalho.net/mediawiki/index.php/Criando_entradas_para_ip_fixo_no_arquivo_DHCPD.conf





Comentários Recentes