Ich experimentiere gerade mit meiner Fritz!Box herum und muss feststellen, dass die UPnP-Implementierung scheinbar nicht so verträglich mit den unter Ubuntu verfügbaren Clients ist. Somit gehe ich den "Umweg" über Samba.
Nun funktioniert das Mounten natürlich nur, wenn ein Netzwerk verfügbar ist und dann muss es auch noch mein eigenes sein. :-)
Was liegt da näher als den Event des Verbindens mit dem Netzwerk abzugreifen und ein entsprechendes Skript zu starten. Fündig wurde ich hier:
Start shell script on Network Manager successful connection.
#!/bin/bash
IF=$1
STATUS=$2
if [ "$IF" == "wlan0" ]
then
case "$2" in
up)
logger -s "NM Script up triggered"
;;
down)
logger -s "NM Script down triggered"
;;
pre-up)
logger -s "NM Script pre-up triggered"
;;
post-down)
logger -s "NM Script post-down triggered"
;;
*)
;;
esac
fi
Die Idee war, dass immer dann, wenn ich mich in meinem Heim-WLAN anmelde die Samba-Verbindung zur Fritz!Box aufgebaut werden soll und wenn ich das WLAN verlasse, die Verbindung getrennt wird.
Wie man die ESSID ausliest, habe ich hier gefunden:
NetworkManager/Dispatcher.
## ESSID des verbundenen Netzwerks bestimmen
ESSID=$(iwconfig $IF | grep ESSID | cut -d":" -f2 | sed -e 's/"//g')
Problem war nun, dass es noch Leerzeichen am Ende gab, also wurde der Befehl entsprechend erweitert:
## ESSID des verbundenen Netzwerks bestimmen
ESSID=$(iwconfig $IF | grep ESSID | cut -d":" -f2 | sed -e 's/"//g' | sed -e 's/^ *//g' -e 's/ *$//g')
Nun lief alles wie gewünscht. Beim Verbinden mit dem "richtigen" WLAN wird die Verbindung aufgebaut und beim Verlassen wird immer ein Unmount ausgeführt, da beim Abmelden die ESSID nicht mehr verfügbar ist. Hier nun das komplette Skript:
#!/bin/bash
IF=$1
STATUS=$2
ESSID_HOME="home_wlan"
## ESSID des verbundenen Netzwerks bestimmen
ESSID=$(iwconfig $IF | grep ESSID | cut -d":" -f2 | sed -e 's/"//g' | sed -e 's/^ *//g' -e 's/ *$//g')
if [ "$IF" == "wlan0" ]
then
case "$2" in
up)
logger -s "NM Script up triggered"
if [ "$ESSID" == "$ESSID_HOME" ]; then
logger -s "NM Script mounting fritz-box"
# mount als Benutzer ausführen, damit das Icon im Starter erscheint
su compuscitor
sudo mount /media/fritz-box
fi
;;
down)
logger -s "NM Script down triggered"
logger -s "NM Script unmounting fritz-box"
umount /media/fritz-box
;;
pre-up)
logger -s "NM Script pre-up triggered"
;;
post-down)
logger -s "NM Script post-down triggered"
;;
*)
;;
esac
fi