pensando 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