[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Converte o arquivo dhcpd.leases ===> dhcpd.conf
From: |
Eliphas Levy Theodoro |
Subject: |
Re: [shell-script] Converte o arquivo dhcpd.leases ===> dhcpd.conf |
Date: |
Mon, 21 May 2001 15:03:10 -0300 (BRT) |
Leandro Costa, @ 17/05/01 - 22:27:
> Ola Galera !!!!
>
> Alguem conhece algum script pronto que trate deste caso.
>
> tenho as seguintes informacoes:
> dhcpd.leases
>
> lease 10.1.0.118 {
> starts 5 2001/05/18 01:03:42;
> ends 5 2001/05/18 01:13:42;
> hardware ethernet 00:01:02:3d:a5:3f;
> uid 01:00:01:02:3d:a5:3f;
> client-hostname "SIMATIC";
> }
[...]
> e Gere o resultado assim:
>
> ### SIMATIC
> host SIMATIC {
> hardware ethernet 00:01:02:3d:a5:3f;
> fixed-address 10.1.1.118;
> }
>
> As seguintes informacoes foram tiradas do arquivo dhcpd.leases:
> SIMATIC, 00:01:02:3d:a5:3f; 10.1.1.118;
Não pensei em todas as possibilidades, mas se cada seção for igual (7
linhas na mesma ordem acima):
sed ':a;$bb;N;ba;:b;s/\([^}]\)\n/\1/g' |
sed 's/lease \([0-9.]\+\) {.*net \([0-9a-f:]\+\);.*ame "\([^"]\+\)".*/#
\3\nhost \3 {\nhardware ethernet \2;\nfixed-address \1;\n}/'
Sim, espere o aurélio explicar como funciona isso aí e apresentar uma
idéia menor e mais eficiente ':)
Eu tou pouco inspirado hoje...
--
Eliphas
Get forgiveness now -- tomorrow you may no longer feel guilty.
From (no email address) Mon May 21 12:26:46 2001
Return-Path: <address@hidden>
X-Sender: address@hidden
X-Apparently-To: address@hidden
Received: (EGP: mail-7_1_3); 21 May 2001 19:26:45 -0000
Received: (qmail 59292 invoked from network); 21 May 2001 19:26:44 -0000
Received: from unknown (10.1.10.27) by m8.onelist.org with QMQP; 21 May 2001
19:26:44 -0000
Received: from unknown (HELO perninha.conectiva.com.br) (200.250.58.156) by
mta2 with SMTP; 21 May 2001 19:26:42 -0000
Received: from burns.conectiva (burns.conectiva [10.0.0.4]) by
perninha.conectiva.com.br (Postfix) with SMTP id CC5A416B18 for
<address@hidden>; Mon, 21 May 2001 16:26:36 -0300 (EST)
Received: (qmail 30771 invoked by uid 0); 21 May 2001 19:25:02 -0000
Received: from verde.distro.conectiva (10.0.17.77) by burns.conectiva with
SMTP; 21 May 2001 19:25:02 -0000
Date: Mon, 21 May 2001 16:34:29 -0300 (BRT)
X-Sender: verde@verde.distro.conectiva
To: Shell-Script <address@hidden>
Subject: Re: [shell-script] Converte o arquivo dhcpd.leases ===> dhcpd.conf
In-Reply-To: <Pine.LNX.4.33.0105211421030.974-100000@lilica.distro.conectiva>
Message-ID: <Pine.LNX.4.21.0105211623430.782-100000@verde.distro.conectiva>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=iso-8859-1
Content-Transfer-Encoding: 8BIT
X-eGroups-From: # aurelio marinho jargas <address@hidden>
From: # aurelio marinho jargas <address@hidden>
@ 21/5, Eliphas Levy Theodoro:
> Leandro Costa, @ 17/05/01 - 22:27:
> > lease 10.1.0.118 {
> > starts 5 2001/05/18 01:03:42;
> > ends 5 2001/05/18 01:13:42;
> > hardware ethernet 00:01:02:3d:a5:3f;
> > uid 01:00:01:02:3d:a5:3f;
> > client-hostname "SIMATIC";
> > }
> [...]
> > ### SIMATIC
> > host SIMATIC {
> > hardware ethernet 00:01:02:3d:a5:3f;
> > fixed-address 10.1.1.118;
> > }
> > As seguintes informacoes foram tiradas do arquivo dhcpd.leases:
> > SIMATIC, 00:01:02:3d:a5:3f; 10.1.1.118;
>
> Não pensei em todas as possibilidades, mas se cada seção for igual (7
> linhas na mesma ordem acima):
>
> sed ':a;$bb;N;ba;:b;s/\([^}]\)\n/\1/g' |
> sed 's/lease \([0-9.]\+\) {.*net \([0-9a-f:]\+\);.*ame "\([^"]\+\)".*/#
> \3\nhost \3 {\nhardware ethernet \2;\nfixed-address \1;\n}/'
>
> Sim, espere o aurélio explicar como funciona isso aí e apresentar uma
> idéia menor e mais eficiente ':)
> Eu tou pouco inspirado hoje...
putz, eu nem ia me coçar pra essa, mas já que fui tão gentilmente
citado... &:)
sed -n 's/^ *//;s/"\?[{;]$//;s/^lease //p;s/^.*hostname "//p;/ethernet/p' |
sed 'N;N;s/\(.*\)\n\(.*\)\n\(.*\)/### \3\n host \3 {\n \2;\n fixed-address
\1;\n }/'
o primeiro sed apenas limpa as linhas de interesse, cuspindo:
10.1.0.118
hardware ethernet 00:01:02:3d:a5:3f
SIMATIC
e o segundo pesca essas linhas e formata no padrão desejado:
### SIMATIC
host SIMATIC {
hardware ethernet 00:01:02:3d:a5:3f;
fixed-address 10.1.0.118 ;
}
não sei direito se esse é menor ou mais eficiente, é apenas outra
alternativa, usando uma técnica diferente.
eliphas: o primeiro sed junta todas as linhas do registro numa só
o segundo sed substitui as partes da minhocona pelas cadeias
novas.
mas a solução mais limpa e mantenível é fazer um shellzinho com uns greps
para pegar os valores desejados e jogá-los numa variável. depois um
echo faz o serviço de mostrar tudo...
--
s·:(·>(·×^a]×http://www.verde666.org×^[:wq