Как сделать правильный вывод списка клиентов из dhcpd в centos?

Собственно,работает dhcpd на centos 6.4. Довольно часто требуется вывести список, узнать мак-адрес или ip.
Каким скриптом лучше это сделать?
сейчас есть
cat /var/lib/dhcpd/dhcpd.lease | grep -e lease -e client-hostname
но получается, что каждое значение на новой строчке. Хорошо было бы такого вида
ip-client-hostname-mac
  • Вопрос задан
  • 4822 просмотра
Решения вопроса 2
fallen8rwtf
@fallen8rwtf Автор вопроса
#!/bin/bash
cat /var/lib/dhcpd/dhcpd.leases | awk '/lease/ || /client-hostname/ || /hardware/ || /}/' | awk '!/uid/' | sed 's/lease/Client-IP /g' | sed 's/{//'g | sed 's/hardware ethernet/MAC /g' | sed 's/client-hostname/NAME /g' | sed 's/}/-----------------------------------------------------------/g' | sendmail mail@mail.com

Более-менее выход из решения:
-----------------------------------------------------------
Client-IP 192.168.1.1
MAC ff:ff:ff:ff:ff:ff;
NAME "PC-1";
-----------------------------------------------------------
Client-IP 192.168.1.1
MAC ff:ff:ff:ff:ff:ff;
NAME "PC-1";
-----------------------------------------------------------
Client-IP 192.168.1.1
MAC ff:ff:ff:ff:ff:ff;
-----------------------------------------------------------
Client-IP 192.168.1.1
MAC ff:ff:ff:ff:ff:ff;
NAME "PC-1";
-----------------------------------------------------------
Ответ написан
IlyaEvseev
@IlyaEvseev
Opensource geek
Примерно так:
perl -ne '/lease ([\d\.]+) / and print "$1-"; /hardware ethernet ([a-f0-9:]+);/ and print "$1-"; /client-hostname "(.*);"/ and print "$1\n"' < /var/lib/dhcpd/dhcpd.leases
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
fallen8rwtf
@fallen8rwtf Автор вопроса
есть идеи,но на самом деле знаний awk не хватает

lease 192.168.1.10 {
starts 2 2013/12/03 10:56:22;
ends 2 2013/12/03 22:56:22;
cltt 2 2013/12/03 10:56:22;
binding state active;
next binding state free;
hardware ethernet ff:ff:ff:ff:ff:ff;
uid "\001\000'\016\021\352R";
client-hostname "Finans";
}

выбрать строки, где есть lease, hardware ethernet, client-hostname и выбрать в них второй столбец. но как сделать не перенос строки а вывод в строчку для каждого клиента. подозреваю,что решение не легкое
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы