Hallo, das nächste Script steht an und so langsam machts spass, allerdings hab ich wieder ein Anliegen.
Ausgabe meiner Log-Datei:
Tue Mar 14 23:45:10 2017
Packet-Type = Access-Request
User-Name = "nagios"
NAS-IP-Address = 192.168.10.1
Called-Station-Id = "64-70-02-XX-XX-XX:alix-wlan"
NAS-Port-Type = Wireless-802.11
NAS-Port = 1
Calling-Station-Id = "00-13-EF-XX-XX-XX"
Connect-Info = "CONNECT 54Mbps 802.11g"
Acct-Session-Id = "386D43AE-00000028"
X-Ascend-Home-Agent-UDP-Port = 1027076
X-Ascend-Multilink-ID = 1027074
X-Ascend-Num-In-Multilink = 1027073
Framed-MTU = 1400
EAP-Message = 0x024d00060d00
State = 0xb2106cd1b35d619b49c30783785f0b8f
Message-Authenticator = 0xcf0dfeb5b12c43f84aa96cfd53e27c43Dieser Eintrag wiederholt sich je nachdem wie oft sich ein Client aufm Wlan anmeldet. Deshalb bin ich dabei ein Script zu schreiben, womit die Mac-Adresse des Clients, wie man sieht Calling-Station-Id = "00-13-EF-XX-XX-XX", in eine Datei geschrieben wird.
Das ganze hab ich wie folgt aufgebaut.
#!/bin/bash/
grep Calling-Station-Id datei.txt | awk '{print $NF}' | cut -c 2-18 | sort | uniqnach dem Durchlauf gibts diese Ausgabe:
00-13-EF-XX-XX-XX
jetzt kommt der Knackpunkt...ich wollte die Striche ( - ) gegen Doppelpunkte ( : ) ändern. Irgendwo bei meinem Radius-Server steht nen Befehl dabei ... allerdings funktioniert das nicht so recht.
Radius-Server Befehl:
rewrite_calling_station_id {
if (Calling-Station-Id =~ /([0-9a-f]{2})[-:]?([0-9a-f]{2})[-:.]?([0-9a-f]{2})[-:]?([0-9a-f]{2})[-:.]?([0-9a-f]{2})[-:]?([0-9a-f]{2})/i) {
update request {
Calling-Station-Id := "%{tolower:%{1}-%{2}-%{3}-%{4}-%{5}-%{6}}"
}
}
else {
noop
}
}Ich versuch das schon ne ganze Weile in der Datei einzubauen, klingt auch recht logisch, was der Befehl machen soll...aber irgendwie funzt das net so richtig. Gibt es die Möglichkeit das irgendwie anders zu Lösen?
liebe Grüße