Więc tak:
I. Do /etc/dhcpd.conf dopisujesz (na początku):
II. W /etc/syslog.conf :
1. Dopisujesz (może być na końcu):
local0.* /var/log/dhcpd
local0.* |/root/dhcpdlog
2. Zmieniasz linię:
[coś_tam] /var/log/messages
na:
[cos_tam];local0.none /var/log/messages
III. Tworzysz pipe (jako root):
cd
mkfifo dhcpdlog
chmod 600 dhcpdlog
IV.
1. Restartujesz syslogd
2. Restartujesz klogd
3. Restartujesz dhcpd
Od tej chwili logi dhcpd masz zapisywane w /var/log/dhcpd oraz do pipy /root/dhcpdlog
Pipa to jest FIFO, więc ma między innymi to do siebie, że jak coś z niej odczytasz, to już w niej tego nie ma.
W związku z powyższym:
V. Robisz sobie taki oto skrypcik:
#!/bin/bash
#/usr/sbin/pilnuj_dhcp
IP_LOW=210
IP_HIGH=220
SENDSMS="/sciezka/do/programu/wysylajacego/sms [numer] [tresc] [inny_parametr]"
while read wpis; do
YES=$[`echo $wpis | awk -F" |\." '{if ($6=="DHCPACK" && $11>'$IP_LOW' && \
$11<'$IP_HIGH') {result=1} else {result=0}} END {print result}'`]
if [ $YES == 1 ]; then
$SENDSMS
fi
done < /root/dhcpdlog
VI. Odpalasz skrypcik:
Zważ na & na końcu - jeśli go nie dasz, to skrypt będzie zapierniczał cały czas w konsoli, bo to nie skończona pętla.
VII. Czekasz na SMS-y
PS. Niektóre klienty odpytują serwer DHCP po kilka razy z rzędu i wtedy kilka razy z rzędu dostaja DHCPACK, w związku z czym możliwe jest, że dostaniesz kilka SMS-ów dotyczących tego samego przydziału adresu IP - nie chce mi się już kombinować jak zrobić, żeby temu zapobiec.
A, i nie odpowiadam za ewentualne straty moralne i/lub materialne w przypadku, jeśli Ci się coś popier***i w systemie wskutek wykonania opisanych wyżej działań
