Como posso criar ligações DNSMASQ em formato legível por humanos?

0

Eu quero configurar um alias ou um script que me permita mostrar as ligações DHCP que o dnsmasq possui.

$ cat /var/lib/misc/dnsmasq.leases
1411349054 08:11:96:e9:52:ec 192.168.1.96 W11837894 *

1411413528 b4:b6:76:0c:c9:4d 192.168.1.46 root-HP-9470m *

1411263016 00:1b:21:0e:f2:bd 192.168.1.219 root-Dell-DM061 *

1411357237 00:01:2e:4d:49:bd 192.168.1.31 ata *

1411263041 00:30:67:d2:25:65 192.168.1.51 root-TA75M *

Eu posso pegar a primeira coluna e fazer uma data -d @ 1411349054 (ou awk '{print $1}' /var/lib/misc/dnsmasq.leases | awk '{ print strftime("%c")}' )

Sun Sep 21 20:24:14 CDT 2014

Estou procurando uma maneira no awk para formatar assim:

Sun Sep 21 20:24:14 CDT 2014 08:11:96:e9:52:ec 192.168.1.96 W11837894 *

Mon Sep 22 14:18:48 CDT 2014 b4:b6:76:0c:c9:4d 192.168.1.46 root-HP-9470m *

Alguém tem alguma ideia?

    
por UngaBunga 24.08.2014 / 02:49

2 respostas

1

Você pode tentar o comando abaixo do awk one-liner,

awk 'NF{ $1=strftime("%c", $1);}1' file

OR

$ awk 'NF>1{ $1=strftime("%c", $1);}1' file
Monday 22 September 2014 06:54:14 AM IST 08:11:96:e9:52:ec 192.168.1.96 W11837894 *

Tuesday 23 September 2014 12:48:48 AM IST b4:b6:76:0c:c9:4d 192.168.1.46 root-HP-9470m *

Sunday 21 September 2014 07:00:16 AM IST 00:1b:21:0e:f2:bd 192.168.1.219 root-Dell-DM061 *

Monday 22 September 2014 09:10:37 AM IST 00:01:2e:4d:49:bd 192.168.1.31 ata *

Sunday 21 September 2014 07:00:41 AM IST 00:30:67:d2:25:65 192.168.1.51 root-TA75M *
    
por Avinash Raj 24.08.2014 / 03:07
0

Este comando do awk deve fazer o truque,

awk '{if ($1) {$1=strftime("%c",$1); print}}' /var/lib/misc/dnsmasq.leases

Versão antiga que despejaria a época do Unix em linhas vazias:

awk '{time=$1; $1=""; print strftime("%c",time) $0}' /var/lib/misc/dnsmasq.leases

O truque é aplicar strftime apenas ao argumento relevante e imprimir todo o resto como está. Eu pedi emprestado essa parte desta pergunta SO . (Como sua função strftime funcionou corretamente, presumo que você tenha gawk instalado. Se não, faça sudo apt-get install gawk .)

    
por muru 24.08.2014 / 03:15