Dedies-Board (https://www.dedies-board.de/wbb2/index.php)
- Linux (https://www.dedies-board.de/wbb2/board.php?boardid=30)
-- FAQs (https://www.dedies-board.de/wbb2/board.php?boardid=32)
--- Kurztipp: Ermitteln der aktiven Internetverbindung (https://www.dedies-board.de/wbb2/thread.php?threadid=2338)


Geschrieben von Vimes am 12.08.2008 um 18:07:

  Kurztipp: Ermitteln der aktiven Internetverbindung

Mir wollte ums Verrecken keine kurze, aussagekräftige Betreffszeile einfallen.

Folgendes sei gegeben: man hat einen Laptop, den man sowohl im heimischen WLAN, als auch unterwegs (via Handy mit EDGE/GPRS/UMTS) benutzt.

Nun hätte man gerne, wenn man nicht gerade eine Datenflat hat, daß zumindest beim Mailabruf nicht die Monstermails mit Fotos der gesamten Sippe abgerufen werden (bei Anbietern wie z.B. Congstar geht das etwas ins Geld).

Bisher verwendete ich dafür zwei getrennte Abrufskripte. Das ging, war aber lästig. Viel probater ist es doch, im Skript, das den Mailabruf erledigt, schauen zu lassen, welche Internetverbindung man eigentlich nutzt.

Überlegung Nr. 1: aktive Verbindungen liegen als Geräte unter /dev
Überlegung Nr. 2: diese Namen ändern sich nicht, lassen sich also sehr einfach z.B. mit grep ermitteln.

Lösung:

Hier wird danach gefragt, ob das Gerät /dev/rfcomm0 existiert. Das ist eine Handy-Verbindung. Wenn nicht, dann gibt es WLAN oder Ethernet und es kann ganz normal abgerufen werden (für den Fall, daß es keine Verbindung gibt, fällt der Abruf halt aufn Arsch, das ist mir egal).

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
cd /dev/
check_me=$(ls /dev/rfcomm0 |grep '/dev/rfcomm0')
if [ "$check_me" = "/dev/rfcomm0" ]; then
	# Hier den Befehl für den Mailabruf mit Größenbegrenzung einbauen
else
        # Hier den Befehl für den Mailabruf ohne Größenbegrenzung einbauen
fi


Krude, funktioniert aber sehr gut.

MfG
Vimes



Geschrieben von Haui am 12.08.2008 um 18:20:

  RE: Kurztipp: Ermitteln der aktiven Internetverbindung

Zitat:
Original von Vimes
Hier wird danach gefragt, ob das Gerät /dev/rfcomm0 existiert. Das ist eine Handy-Verbindung. Wenn nicht, dann gibt es WLAN oder Ethernet und es kann ganz normal abgerufen werden (für den Fall, daß es keine Verbindung gibt, fällt der Abruf halt aufn Arsch, das ist mir egal).

Ist das nicht ein wenig umständlich? Ein if [ -e /dev/rfcomm0 ] sollte doch den selben Zweck erfüllen.



Geschrieben von Vimes am 17.08.2008 um 22:33:

 

Ja und ja. großes Grinsen

Ich schiebe es einfach mal auf meine Dauerüberlastung, daß ich auf den einfacheren und eleganteren Weg nicht gekommen bin ... (den habe ich z.B. bei Cronjobs schon benutzt, so ist das nicht ...)

Edit: Hauis elegante Lösung umgeht auch die Fehlermeldungen, die meine auswirft. Die kann man natürlich extra nach /dev/null leiten lassen, aber Hauis Lösung ist bei weitem vorzuziehen. Hut ab. yes

MfG
Vimes