Link down mit udev erkennen
Link down mit udev erkennen
Hallo zusammen,
ich habe einen Rechner mit zwei Netzwerkkarten. Wenn an einer Netzwerkkarte das Kabel gezogen wird, soll die zweite Karte auch deaktiviert werden.
Ich habe versucht das Problem mit ifplugd zu erschlagen. Das ist mir leider nicht gelungen. Ifplugd fährt die zweite Schnittstelle einfach wieder hoch weil das Kabel noch drin steckt.
Nun ist mir der einfall gekommen mit udev ein Script auszuführen wenn das kabel gezogen wird. Ich habe schon versucht mich in udev einzulesen, allerdings ist das ziemlich Nebulös für mich.
Kann mir jemand einen Denkanstoß geben wie ich das Problem mit udev lösen könnte?
ich habe einen Rechner mit zwei Netzwerkkarten. Wenn an einer Netzwerkkarte das Kabel gezogen wird, soll die zweite Karte auch deaktiviert werden.
Ich habe versucht das Problem mit ifplugd zu erschlagen. Das ist mir leider nicht gelungen. Ifplugd fährt die zweite Schnittstelle einfach wieder hoch weil das Kabel noch drin steckt.
Nun ist mir der einfall gekommen mit udev ein Script auszuführen wenn das kabel gezogen wird. Ich habe schon versucht mich in udev einzulesen, allerdings ist das ziemlich Nebulös für mich.
Kann mir jemand einen Denkanstoß geben wie ich das Problem mit udev lösen könnte?
Gruß Lolek
Re: Link down mit udev erkennen
Also ich seh' da nix mit udevadm monitor, wenn ich Kabel ab- und zustecke. Entsprechend wird es keine passend formulierbaren Regeln geben.
Ich wuerde ip-monitor(8) filtern und danach handeln: (insgesamt ungetestet, sollte aber so oder aehnlich tun)Das kann dann per rc.local/o.ae. automatisch starten lassen (und ggf. ueberwachen, z.B. mit supervise(1) aus
daemontools).
Gruss Cae
Ich wuerde ip-monitor(8) filtern und danach handeln: (insgesamt ungetestet, sollte aber so oder aehnlich tun)
Code: Alles auswählen
#!/bin/sh
# sets network link state of DEV_SWITCH according to DEV_TRIGGER
ip monitor link \
| awk -vDEV_TRIGGER=eth0 -vDEV_SWITCH=eth1 '
DEV_TRIGGER":" == $2 {
if ("DOWN" == $NF) {
print("ip link set down dev "DEV_SWITCH)
} else if ("UP" == $NF) {
print("ip link set up dev "DEV_SWITCH)
} else {
print("unknown state for dev "DEV_TRIGGER": "$NF) >"/dev/stderr"
}
}
' \
| sh
![Debian](/pics/debianpackage.png)
Gruss Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.
—Bruce Schneier
Re: Link down mit udev erkennen
Moin Cae,
danke für die Antwort.
Wenn ich -- udevadm monitor -- starte sehe ich
oder eben den Post für Nic is Up.
Ich weis nur nicht so richtig wie ich den Post auswerten kann. Mit SUBSYSTEM=="net" will es mir nicht gelingen. Scheint irgendwie nicht der richtige Ansatz zu sein.
danke für die Antwort.
Wenn ich -- udevadm monitor -- starte sehe ich
Code: Alles auswählen
[ 301.201816] e1000e: eth0 Nic is Down
Ich weis nur nicht so richtig wie ich den Post auswerten kann. Mit SUBSYSTEM=="net" will es mir nicht gelingen. Scheint irgendwie nicht der richtige Ansatz zu sein.
Gruß Lolek
Re: Link down mit udev erkennen
Das sieht mir eher nach dmesg-Output aus, jedenfalls bekomme ich das hier nicht nachgestellt. Von udevadm wuerde ich eher Output wieerwarten (ich hab' 'nen USB-Stick drangesteckt).
Gruss Cae
Code: Alles auswählen
[...]
UDEV [3503008.922953] add /devices/pci0000:00/0000:00:10.4/usb1/1-5 (usb)
ACTION=add
BUSNUM=001
[...]
Gruss Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.
—Bruce Schneier
Re: Link down mit udev erkennen
Hallo Cae,
ich habe aber udevadm eingegeben. Ist höchstens möglich, daß dmesg einfach die Meldungen auf dem Bildschirm ausgegeben hat und ich die Meldung für die Ausgabe von udevadm gehalten habe.
Kann man die Ausgabe von dmsg auswerten um ein Script zu starten??
ich habe aber udevadm eingegeben. Ist höchstens möglich, daß dmesg einfach die Meldungen auf dem Bildschirm ausgegeben hat und ich die Meldung für die Ausgabe von udevadm gehalten habe.
Kann man die Ausgabe von dmsg auswerten um ein Script zu starten??
Gruß Lolek
Re: Link down mit udev erkennen
Hi.
Dort habe ich ein Beispiel für ein Cron-Script gefunden.
Eventuell könnte man das ganze auch einfacher Lösen. In der /etc/network/interfaces könntest du das eventuell über post-up und post-down scripts lösen.
Dort habe ich ein Beispiel für ein Cron-Script gefunden.
Eventuell könnte man das ganze auch einfacher Lösen. In der /etc/network/interfaces könntest du das eventuell über post-up und post-down scripts lösen.
Georg
RTFM, LMGTFY, Orakel... Ach... Warum muss man suchen...
Schrödingers Backup --- "Der Zustand eines Backups ist unbekannt, solange man es nicht wiederherstellt" --- Quelle: Nixcraft
RTFM, LMGTFY, Orakel... Ach... Warum muss man suchen...
Schrödingers Backup --- "Der Zustand eines Backups ist unbekannt, solange man es nicht wiederherstellt" --- Quelle: Nixcraft
Re: Link down mit udev erkennen
Dass Cae dir schon eine Lösung präsentiert hat ist dir egal oder?
Unix is user-friendly; it's just picky about who its friends are.