Я пытаюсь проанализировать мой файл dhcpd.lease с Базелем. Типичная запись выглядит так:
lease 192.168.20.4 {
starts 6 2009/06/27 00:40:00;
ends 6 2009/06/27 12:40:00;
hardware ethernet 00:00:00:00:00:00;
uid 00:00:00:00:00:00;
client-hostname "examle-workstation1";
}
Вся информация, которую я получаю, это MAC-адрес и что я хочу, это IP и имя клиента-хоста. Но, возможно, нет имени клиента-хоста. Запись выглядит так:
lease 192.168.20.5 {
starts 6 2009/06/27 00:40:00;
ends 6 2009/06/27 12:40:00;
hardware ethernet 00:00:00:00:00:00;
}
Моя первая идея состояла в том, чтобы собрать grep-атрибут аренды, аппаратный Ethernet-атрибут и атрибут UID и поместить их все в одну строку. А потом разбери его.
Но моя проблема в том, что у меня большой файл с множеством записей, размещенных во многих файлах. Дерево выглядит так:
dhcpd-leases
-- 192.168.20.0
-- 192.168.30.0
-- 192.168.40.0
[...]
И все, что я получаю, это MAC, проанализированные из других файлов в список. Поэтому я начну с этого списка и хочу использовать атрибут ip, mac с моим MAC:
for ENTRY in $MACLIST
do
VAR$(cat "dhcpd-leases/10.148.$NETWORK.2/dhcpd.leases" | grep -E "$MAC|lease|client-hostname")
echo $VAR
done
Но это из-за большого количества записей в $ VAR и файлов, которые я не могу разобрать правильно.
Может ли помочь соменон?
С наилучшими пожеланиями
Питер