Eseguire script quando la connessione wireless si attacca

Tags: 

Ci sono situazioni in cui desideriamo avviare una procedura ogni volta che il nostro sistema si aggancia alla rete (o, al contrario, si disconnette).

Se usiamo il sistema standard "networkmanager" questo è molto semplice, infatti basta inserire uno script all'interno della cartella:

/etc/NetworkManager/dispatcher.d

Gli script in quella cartella vengono eseguiti in ordine alfabetico crescente alla connessione (e decrescente alla sconnessione). Per questo si usa la solita pratica comune di usare il formato "NN_nome", ad esempio "30_popfile".

Inoltre è importante che siano con owner "root.root" e diritti "755".

L'esecuzione avviene passando 2 parametri: interfaccia e l'indicativo "up" o "down" in caso di attivazione o disattivazione. Un template base per uno script è quindi questo:

#!/bin/sh
case "$2" in
        'up') # network UP
                ... codice da eseguire alla connessione ...
                ;;
        'down') # network DOWN
                ... codice da eseguire alla disconnesione ...
                ;;
esac

Ad esempio, per sincronizzare l'ora di sistema (una volta sola alla connessione, e non di continuo usando il servizio), si può creare il file:

/etc/NetworkManager/dispatcher.d/20_ntpd

#!/bin/sh
case "$2" in
        'up')
                exec ntpd -qg &
                ;;
        'down')
                ;;
esac

o anche:

#!/bin/sh
if [ "$2" = "up" ]; then
    exec ntpd -qg &
fi

 

Per altre informazioni:

https://wiki.archlinux.org/index.php/NetworkManager#Network_Services_wit...

Aggiungi un commento

Scrivi la risposta in lettere (ad esempio "tre" e non "3")