Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Mit Shellscript Informationen aus laufendem Prozess (nodogsplash) extrahieren

Frage Entwicklung Batch & Shell

Mitglied: crazyhorse

crazyhorse (Level 1) - Jetzt verbinden

25.03.2013, aktualisiert 15:21 Uhr, 1710 Aufrufe

Hallo,
ich brauche Hilfe bei der Erstellung eines Shellscripts, das bestimmte Informationen aus einem laufenden Prozess (nodogsplash) extrahieren und verarbeiten soll.

Router: TL-WR842ND
Betriessystem: OpenWrt / Trunk
Captive Portal: nodogsplash

Wenn ich per SSH auf meinen Router connecte und

01.
/usr/bin/ndsctl status
ausführe, bekomme ich folgende Statusmeldung von nodogsplash:

01.
root@OpenWrt:/etc# /usr/bin/ndsctl status 
02.
================== 
03.
NoDogSplash Status 
04.
==== 
05.
Version: 0.9_beta9.9.6 
06.
Uptime: 0d 21h 20m 19s 
07.
Gateway Name: NoDogSplash 
08.
Managed interface: br-lan 
09.
Managed IP range: 0.0.0.0/0 
10.
Server listening: 192.168.1.1:2050 
11.
Splashpage: /etc/nodogsplash/htdocs/splash.html 
12.
Traffic control: no 
13.
Total download: 0 kByte; avg: 0 kbit/s 
14.
Total upload: 0 kByte; avg: 0 kbit/s 
15.
==== 
16.
Client authentications since start: 8 
17.
Httpd request threads created/current: 301/0 
18.
Current clients: 2 
19.
 
20.
Client 0 
21.
  IP: 192.168.1.125 MAC: XX:XX:XX:XX:XX:XX 
22.
  Added:   Mon Mar 25 12:13:44 2013 
23.
  Active:  Mon Mar 25 14:42:20 2013 
24.
  Active duration: 0d 2h 28m 36s 
25.
  Added duration:  0d 2h 29m 59s 
26.
  Token: 0aeaa7e8 
27.
  State: Authenticated 
28.
  Download: 857 kByte; avg: 0.762148 kbit/s 
29.
  Upload:   402 kByte; avg: 0.357597 kbit/s 
30.
 
31.
Client 1 
32.
  IP: 192.168.1.105 MAC: XX:XX:XX:XX:XX:XX 
33.
  Added:   Mon Mar 25 12:46:43 2013 
34.
  Active:  Mon Mar 25 14:43:43 2013 
35.
  Active duration: 0d 1h 57m 0s 
36.
  Added duration:  0d 1h 57m 0s 
37.
  Token: 288d8db4 
38.
  State: Authenticated 
39.
  Download: 168781 kByte; avg: 192.344 kbit/s 
40.
  Upload:   3801 kByte; avg: 4.33266 kbit/s 
41.
 
42.
==== 
43.
Blocked MAC addresses: none 
44.
Allowed MAC addresses: N/A 
45.
Trusted MAC addresses: none 
46.
========
Mein Ziel ist es, dass per Shellscript und crontab folgendes gemacht wird:
1) Rufe Statusmeldung von nodogsplash auf (siehe oben)
2) Wenn Client vorhanden, gehe zu Punkt 3. Ansonsten exit.
3) Extrahiere MAC und Verbindungsdauer von Client 1.
3.1) Wenn Verbindungsdauer ("Active duration", siehe Statusmeldung oben) größer oder gleich ist als 1, dann blocke die MAC von Client 1 mit dem Befehl "/usr/bin/ndsctl block MAC".
4) Wiederhole Punkt 3 bis 3.1 für alle anderen Clients. Wenn keine Clients mehr vorhanden dann exit.

Wie funktioniert sowas? Ich hatte mit grep und awk bisher nur mäßigen Erfolg, da ich das konzept noch nicht zu 100% verstanden habe.

Der Sinn des Ganzen ist es die Internetverbindung für meine Hotspot-Gäste auf eine Stunde pro Tag zu begrenzen. Ein weiterer Script soll alle 24 Stunden gestartet werden, damit alle blockierten MAC wieder "unblocked" werden.

Liebe Grüße,
crazyhorse.
Neuester Wissensbeitrag
Ähnliche Inhalte
Batch & Shell
gelöst Mit Batchdatei Informationen auslesen und diese strukturiert in Excel ausgeben (9)

Frage von Flodsche zum Thema Batch & Shell ...

Linux
gelöst URL und Username aus HTML-Datei extrahieren - sed, grep (4)

Frage von plutowitsch zum Thema Linux ...

Monitoring
Prozess oder Dienst Überwachung mit Nagios? (5)

Frage von harald.schmidt zum Thema Monitoring ...

Batch & Shell
gelöst Von Batchdatei ausgeführten Prozess benennen (12)

Frage von itazubii zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (33)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...