Ich hätte z.B. gerne eine Benachrichtigung, wenn sich ein neues Gerät im Netzwerk anmeldet (ein neuer DHCP Lease erstellt wird). Gibt es da eine Möglichkeit, die ich bislang noch nicht gefunden habe?
Also über System -> Einstellungen -> Benachrichtigungen kann man ja zumindest SMTP einrichten, aber wie kann ich denn steuern, dass ich bei bestimmten Events aktiv benachrichtigt werde?
#!/bin/cshset FILE = "/var/dhcpd/var/db/dhcpd.leases"set LeaseCount = `grep -c "binding state active" $FILE`echo "Active LeaseCount: $LeaseCount"if ($LeaseCount > 0) then set LINE = ( `grep -n "binding state active" $FILE | cut -d: -f1` ) foreach L ($LINE) echo "##################" # set EL = `expr $L + 8` set CL = `expr $L - 5` while ( $CL < `expr $L + 8` ) if ( `sed -n "$CL p" $FILE | cut -d ' ' -f1` == "lease" ) then echo IP: `sed -n "$CL p" $FILE | cut -d ' ' -f2` endif if ( `sed -n "$CL p" $FILE | cut -d ' ' -f3` == "starts" ) then echo Start: `sed -n "$CL p" $FILE | cut -d ' ' -f5,6` endif if ( `sed -n "$CL p" $FILE | cut -d ' ' -f3` == "ends" ) then echo Ende: `sed -n "$CL p" $FILE | cut -d ' ' -f5,6` endif if ( `sed -n "$CL p" $FILE | cut -d ' ' -f3` == "hardware" ) then echo MAC: `sed -n "$CL p" $FILE | cut -d ' ' -f5` endif if ( `sed -n "$CL p" $FILE | cut -d ' ' -f3` == "client-hostname" ) then echo Name: `sed -n "$CL p" $FILE | cut -d ' ' -f4-` endif if ( `sed -n "$CL p" $FILE | cut -d ' ' -f3` == "set" ) then echo Device: `sed -n "$CL p" $FILE | cut -d ' ' -f6-` endif if ( `sed -n "$CL p" $FILE | cut -d ' ' -f1` == "}" && $CL > $L ) then set CL = `expr $CL + 8` endif @ CL++ end end exit 1else exit 0endif
#!/bin/shawk 'BEGIN{RS = "}";FS = "\n"; printf "[";} END {printf "]";}{ for (I=NF;I>0;I--) { split($I, lineArray, " "); if( lineArray[1] == "lease" ){ ipaddr=lineArray[2]; if(hascontent == 1) { printf ","; } hascontent=1; printf "{\"ipaddr\":\""ipaddr"\", \"state\":\""bindingstate"\", \"mac\":\""mac"\", \"hostname\":\""hostname"\", \"start\":\""start"\", \"end\":\""end"\", \"cltt\":\""cltt"\"}"; } if( lineArray[1] == "binding" && lineArray[2] == "state") { bindingstate=lineArray[3]; gsub(/\;/,"",bindingstate); } if( lineArray[1] == "hardware" && lineArray[2] == "ethernet") { mac=lineArray[3]; gsub(/\;/,"",mac); } if( lineArray[1] == "client-hostname") { hostname=lineArray[2]; gsub(/\;|"/,"",hostname); } if( lineArray[1] == "starts") { start=lineArray[3]" "lineArray[4]; gsub(/\;/,"",start); } if( lineArray[1] == "ends") { end=lineArray[3]" "lineArray[4]; gsub(/\;/,"",end); } if( lineArray[1] == "cltt") { cltt=lineArray[3]" "lineArray[4]; gsub(/\;/,"",cltt); } }}' /var/dhcpd/var/db/dhcpd.leases