Script futtatása, ha adott wlan-ra csatlakozott a gép...

Fórumok

Sziasztok,
sajnos ötletem sincs hogyan vehetném rá a google-t hogy elárulja a titkot :)
A következőt szeretném elérni, ha a notival az otthoni hálóba csatlakozom akkor mountoljon fel pár samba megosztást, csináljon egy backup-ot ...stb.

Ezért szeretnék valahova tenni egy scriptet ami akkor hívódik meg "magától", mikor adott vezeték nélküli hálóra csatlakozott a gép...

Van erre kész megoldás, vagy végre feltalálok valami állat dolgot az open source közösségnek :) (általában nem :D)

Előre is köszönöm az ötleteket.

Üdv,
mspike.

-------------------------------------------------------------------------
A megoldás (Köszi _Ventura_):
Ubuntu alatt...
/etc/network/if-up.d/

1. új file, home_network, név mind1 (root-ként)
2. tartalma:


#!/bin/bash

if [ $IFACE == "wlan0" ] ; then
ESSID=`iwconfig wlan0 | grep wlan0 | sed 's/.*ESSID:"\([^"]*\).*/\1/'`
if [ $ESSID == "XXX" ] ; then
soure
touch /tmp/home_network #ez azért, mert a .bashrc-be beállítom a proxy-t ami viszont otthoni hálóból nem kell, így ott egy sima [ ! -e /tmp/home_network] került elé...
fi
fi

3. Miután samba mountot teszek fel így kell egy jelszó is, ezt a következő scripttel oldottam meg amit a 2. pont -nál hívok.


IS_MOUNTED=`mount | grep "walle"` #Ha csak lecsuktam a notit, és felnyitom ne próbálja újra mountolni
if [ $? != 0 ] ; then
export DISPLAY=:0.0 # Ez a zenity miatt kell...
PASS=`zenity --entry --title="Password" --text="Please provide your password" --hide-text` # Ez a sor feldob egy csilli villi password ablakot...
mkdir /mnt/xxx -p &> /dev/null
mount -t cifs //xxx/yyy /mnt/xxx -o user=,password=${PASS}
fi

ugyan mint az látható nekem a user be van égetve, és még nem oldottam meg, hogy mi történik ha elírod a jelszót... de majd a zenity csoda boxokkal meg csinálom szépre... Elég jó érzés volt mikor hazaérve kicsaptam a notit belépek és felpuffan egy ablak... (addigra el is felejtettem, hogy ez fog történni :D Jelszó be, megosztások fel :)

Köszönöm a segítséget mindenkinek.
Nem tudom mennyire szokás ilyen összegzést írni, hátha így könnyebben használható... nem kell végig olvasni az egész topicot...

Hozzászólások

debian/ubuntu alatt, /etc/network/ ben vannak if-up down stb könyvtárak oda kell rakni.

Ubuntu 10.04, Thinkpad x60s

Beraktam egy testet a /etc/network/if-up.d -be és szépen lefut mikor bekapcsolom a wifit... bár nem tudom, hogy csatlakozás előtt, vagy csak utána... kérdés... kapok valamilyen shell változót, hogy melyik interface volt a trigger ? Vagy akármilyen infót... :) Nem találom a man page-t hozzá... mi a varázsszó ? Köszi.

Ha NetworkManager-t használsz akkor pedig a

/etc/NetworkManager/dispatcher.d

könyvárba kell elhelyezni egy scriptet.

Azt hiszem két paramétert ad át az NM az interfész nevét és a státuszt (up/down).

Azt csekkolni hogy otthoni háló-e meg tök könnyen tudod a céleszköz név/ip páros ellenőrzéssel, pl ha egy NAS a cél. ;)

iwconfig megmondja, hogy milyen ap-ra vagy csatlakozva, az alapján lehet plusz szkriptet futtatni.