Script ausführen bei Netzwerkverbindung
-
- Beiträge: 3
- Registriert: 17.10.2007 17:14:59
Script ausführen bei Netzwerkverbindung
Hallo alle zusammen,
ich möchte erreichen, dass ich sowie ich ein Netzwerkkabel in die Netzwerkbuchse einstecke und eine Datenverbindung besteht, ein Skript von mir ausgeführt wird. Die Netzwerkkarte hat eine statische IP.
Ich habe schon mit Script in /etc/network/if-up.d experimentiert, jedoch werden diese nur ausgeführt, wenn ich den Netzwerkservice durchstarte und nicht, wenn ich die Netzwerkverbindung für einige Zeit ziehe und wieder einstecke. Auch habe ich schon mit "up"-Statements in den Netzwerk-Konfigs experimentiert. Alles ohne Erfolg.
Hat jemand eine Idee?
Gruß
meinereiner
ich möchte erreichen, dass ich sowie ich ein Netzwerkkabel in die Netzwerkbuchse einstecke und eine Datenverbindung besteht, ein Skript von mir ausgeführt wird. Die Netzwerkkarte hat eine statische IP.
Ich habe schon mit Script in /etc/network/if-up.d experimentiert, jedoch werden diese nur ausgeführt, wenn ich den Netzwerkservice durchstarte und nicht, wenn ich die Netzwerkverbindung für einige Zeit ziehe und wieder einstecke. Auch habe ich schon mit "up"-Statements in den Netzwerk-Konfigs experimentiert. Alles ohne Erfolg.
Hat jemand eine Idee?
Gruß
meinereiner
-
- Beiträge: 3
- Registriert: 17.10.2007 17:14:59
Re: Script ausführen bei Netzwerkverbindung
Hallo,
ich habe ein wenig mit ifplugd herumexperimentiert (netplug kommt für mich nicht in Frage).
Leider triggert auch ifplugd nicht meine Scripte an. Ich habe folgendes gemacht:
1. /etc/network/interfaces unverändert gelassen (statische IP)
2. ifplugd installiert
3. /etc/default/ifplugd editiert:
INTERFACES="eth0"
HOTPLUG_INTERFACES="eth0"
ARGS="-q -f -u0 -d10 -w -I"
SUSPEND_ACTION="stop"
4. Script unter /etc/ifplugd/action.d/ erstellt und ausführbar gemacht und auch manuell getestet
5. Netzwerk durchgestartet (/etc/init.d/networking restart)
6. ifplugd durchgestartet (/etc/init.d/ifplugd restart) -> hier wird auch gemeldet, dass eth0 verwendet wird.
Woran kann es noch liegen?
Gruß
meinereiner85
ich habe ein wenig mit ifplugd herumexperimentiert (netplug kommt für mich nicht in Frage).
Leider triggert auch ifplugd nicht meine Scripte an. Ich habe folgendes gemacht:
1. /etc/network/interfaces unverändert gelassen (statische IP)
2. ifplugd installiert
3. /etc/default/ifplugd editiert:
INTERFACES="eth0"
HOTPLUG_INTERFACES="eth0"
ARGS="-q -f -u0 -d10 -w -I"
SUSPEND_ACTION="stop"
4. Script unter /etc/ifplugd/action.d/ erstellt und ausführbar gemacht und auch manuell getestet
5. Netzwerk durchgestartet (/etc/init.d/networking restart)
6. ifplugd durchgestartet (/etc/init.d/ifplugd restart) -> hier wird auch gemeldet, dass eth0 verwendet wird.
Woran kann es noch liegen?
Gruß
meinereiner85
- Livingston
- Beiträge: 1816
- Registriert: 04.02.2007 22:52:25
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: 127.0.0.1
Re: Script ausführen bei Netzwerkverbindung
Nicht sicher, aber das sieht mir doppelt gemoppelt aus. Außerdem: Hast Du wirklich eine PCMCIA-Karte oder ähnliches eingebaut, für die Du HOTPLUG_INTERFACES brauchst? Denn bei statischer IP tippe ich mal, dass es nicht um 'nen Laptop geht.meinereiner85 hat geschrieben: INTERFACES="eth0"
HOTPLUG_INTERFACES="eth0"
Vielleicht mal der Karte Zeit zum Luftschnappen geben und -u0 auf eine Sekunde raufsetzen: -u1meinereiner85 hat geschrieben: ARGS="-q -f -u0 -d10 -w -I"
Edit/Ergänzung:
Statt mit dem up statement in /etc/network/interfaces zu arbeiten, kannst Du auch Scripte in /etc/network/if-up.d/ unterbringen. Hierbei drauf achten, dass der Exit-Status 0 ist, sonst bricht ifup, das diese Aufgabe beim Hochfahren übernimmt, den Vorgang ab.
Dies hat aber nichts mit dem Überprüfen der Kabelverbindung zu tun. Diese sollte tatsächlich mit ifplugd getestet werden.
- unitra
- Beiträge: 646
- Registriert: 15.06.2002 21:09:38
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: 127.128.129.130
Re: Script ausführen bei Netzwerkverbindung
Du solltest auf die Erreichbarkeit des enfernten hosts mal überprüfen. Denn die Verbindung ist erst da, wenn der entfernte Hop, der entfernte Host per ICMP erreichbar ist (sprich wenn du in Pingen kannst).
Du könntest den IP Host, anpingen und darüber die Entscheidung machen wann das Skript ausgeführt wird.
z.B. alle 5 Minuten einen Cronjob zur Auswertung des ICMP Traffics anlegen, wenn entfernter Host ICMP Reply sendet, dann das Skript ausführen lassen.
Das würde funktionieren, schlimmer ist aber sich die Abbruchbedingung zu überlegen, weil wenn Host per ICMP erreichbar ist, dann alle 5 Minuten wird das Skript ausgeführt.
Die Abbruchbedingung könnte so aussehen, wenn letzer Test(vor 5 Minuten ICMP Reply positiv) dann Skript aber nicht ausführen. Erst wenn z.B "Destination Host Unreachable" im letzen Ping Test als ICMP Reply geschickt wurde.
Du könntest den IP Host, anpingen und darüber die Entscheidung machen wann das Skript ausgeführt wird.
z.B. alle 5 Minuten einen Cronjob zur Auswertung des ICMP Traffics anlegen, wenn entfernter Host ICMP Reply sendet, dann das Skript ausführen lassen.
Das würde funktionieren, schlimmer ist aber sich die Abbruchbedingung zu überlegen, weil wenn Host per ICMP erreichbar ist, dann alle 5 Minuten wird das Skript ausgeführt.
Die Abbruchbedingung könnte so aussehen, wenn letzer Test(vor 5 Minuten ICMP Reply positiv) dann Skript aber nicht ausführen. Erst wenn z.B "Destination Host Unreachable" im letzen Ping Test als ICMP Reply geschickt wurde.
- Livingston
- Beiträge: 1816
- Registriert: 04.02.2007 22:52:25
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: 127.0.0.1
Re: Script ausführen bei Netzwerkverbindung
unitra, darum geht's gerade nicht, sondern um die Frage, ob das Kabel steckt oder nicht, also ob eine Verbindung im Link Layer1 und somit eine Protokollschicht unterhalb von TCP/IP und ICMP existiert.
Die üblichen Startscripte in /etc/init.d/ und damit verbändelten Verzeichnisse testen nicht auf dieser Ebene, sondern setzen eine existierende Verbindung stillschweigend voraus. Deshalb sind zwei Probleme zu lösen: Beim Starten nachschauen, ob das Kabel steckt, und testen ob sich daran im laufenden Betrieb etwas ändert. Dies leistet ifplugd.
Die üblichen Startscripte in /etc/init.d/ und damit verbändelten Verzeichnisse testen nicht auf dieser Ebene, sondern setzen eine existierende Verbindung stillschweigend voraus. Deshalb sind zwei Probleme zu lösen: Beim Starten nachschauen, ob das Kabel steckt, und testen ob sich daran im laufenden Betrieb etwas ändert. Dies leistet ifplugd.
Re: Script ausführen bei Netzwerkverbindung
Entweder kann man vielleicht folgendes nutzen:
oder vielleicht sogar die Datei
Vielleicht gibt es im /proc-Filesystem auch bessere Werte, kenn mich damit leider nicht aus.
Nachtrag:
Habe gerade mal den Sourcecode von "ifplugd" ( http://packages.debian.org/source/squeeze/ifplugd ) gelesen. Interessant ist das Programm ifplugstatus (ifplugstatus.c), welches auch /proc/net/dev nutzt.
Code: Alles auswählen
ifconfig
...
UP BROADCAST RUNNING MULTICAST MTU:1500 Metrik:1
...
Code: Alles auswählen
/proc/net/dev
Nachtrag:
Habe gerade mal den Sourcecode von "ifplugd" ( http://packages.debian.org/source/squeeze/ifplugd ) gelesen. Interessant ist das Programm ifplugstatus (ifplugstatus.c), welches auch /proc/net/dev nutzt.
Re: Script ausführen bei Netzwerkverbindung
Hallo,
hier vielleicht ein Lösungsansatz:
Link
Gruß
Peter
Huch gerade gesehen der Eintrag ist uralt...
hier vielleicht ein Lösungsansatz:
Link
Gruß
Peter
Huch gerade gesehen der Eintrag ist uralt...