Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di hfish
    Registrato dal
    Dec 2000
    Messaggi
    3,180

    [bash] connessione automatica wifi solo se c'è la rete

    ciao a tutti
    mi sono creato uno script ad-hoc per connettermi automaticamente alla rete wifi di casa e velocizzare contestualmente l'avvio del notebook

    codice:
    #! /bin/sh
    # /etc/init.d/avvia_rete
    #
    
    case "$1" in
    	start)
    		echo "Configuro la scheda Wi-Fi"
    		iwconfig eth1 essid ZyXEL enc XXX
    		echo "Eseguo richiesta DHCP"
    		dhclient eth1
    		exit 1;
    		;;
    	stop)
    		echo "Deconfiguro la scheda Wi-Fi"
    		ifdown eth1
    		exit 1;
    		;;
    	reload)
    		echo "Nuova richiesta DHCP..."
    		dhclient eth1
    		exit 1;
    		;;
    	force-reload)
    		echo "Rimozione module ipw3945"
    		modprobe -r ipw3945
    		echo "Carimamento modulo ipw3945"
    		modprobe ipw3945
    		echo "Configuro la scheda Wi-Fi"
    		iwconfig eth1 essid ZyXEL enc XXX
    		echo "Eseguo richiesta DHCP"
    		dhclient eth1
    		exit 1;
    		;;
    	*)
    		echo "Usage: /etc/init.d/avvia_rete {start|stop|reload|force-reload}"
    		exit 1;
    		;;
    esac
    
    exit 0
    mettendo in init come S99 la configurazione della rete viene fatta quando ormai X è in caricamento...

    vorrei aggiungere una piccola feature allo script, ovvero far si che lo script sia eseguito SOLO se viene rilevata la rete...

    mi serve una condizione del tipo: se iwlist eth1 scan | grep ZyXEL torna qualcosa != 0
    allora ho rilevato la rete e passo alla configurazione dhcp, altrimenti salto la configurazione

    il problema è che sono abbastanza ignorante in fatto di bash e non so come implementare una funzione di questo tipo...

    qualcuno mi aiuterebbe?

    grazie mille
    Non dobbiamo trascurare la probabilità che il costante inculcare la credenza in Dio nelle menti dei bambini possa produrre un effetto così forte e duraturo sui loro cervelli non ancora completamente sviluppati, da diventare per loro tanto difficile sbarazzarsene, quanto per una scimmia disfarsi della sua istintiva paura o ripugnanza del serpente.

  2. #2

    Re: [bash] connessione automatica wifi solo se c'è la rete

    Originariamente inviato da hfish
    mi serve una condizione del tipo: se iwlist eth1 scan | grep ZyXEL torna qualcosa != 0
    allora ho rilevato la rete e passo alla configurazione dhcp, altrimenti salto la configurazione
    Prova con
    codice:
    if [ ! -z `iwlist eth1 scan | grep ZyXEL` ]
    then
          dhclient eth1
    fi
    NeapoliX GNU/Linux
    "Alla maggior parte della gente piace leggere la propria scrittura e annusare l'odore dei propri peti." (Auden)

  3. #3
    Utente di HTML.it L'avatar di hfish
    Registrato dal
    Dec 2000
    Messaggi
    3,180

    Re: Re: [bash] connessione automatica wifi solo se c'è la rete

    Originariamente inviato da PinguinoGoloso
    Prova con
    codice:
    if [ ! -z `iwlist eth1 scan | grep ZyXEL` ]
    then
          dhclient eth1
    fi
    ho fatto due prove al volo e sembra funzionare, ora cerco di integrarlo nello script
    grazie mille

    piccola curiosità...
    il `-z` a che serve?
    Non dobbiamo trascurare la probabilità che il costante inculcare la credenza in Dio nelle menti dei bambini possa produrre un effetto così forte e duraturo sui loro cervelli non ancora completamente sviluppati, da diventare per loro tanto difficile sbarazzarsene, quanto per una scimmia disfarsi della sua istintiva paura o ripugnanza del serpente.

  4. #4
    Utente di HTML.it L'avatar di hfish
    Registrato dal
    Dec 2000
    Messaggi
    3,180
    vediamo un po'...

    codice:
    #! /bin/sh
    # /etc/init.d/avvia_rete
    #
    
    case "$1" in
    	start)
    		echo "Configuro la scheda Wi-Fi"
    		if [! -z `iwlist eth1 scan | grep ZyXEL`]
    		then
    			iwconfig eth1 essid ZyXEL enc XXX
    			dhclient eth1
    			exit 1;
    		elif [! -z `iwlist eth1 scan | grep DLINK_WIRELESS`]
    			iwconfig eth1 essid DLINK_WIRELSS enc XXX
    			dhclient eth1
    			echo "nameserver 130.244.127.161" > /etc/resolv.conf
    			echo "nameserver 130.244.127.169" >> /etc/resolv.conf
    			exit 1;
    		elif [! -z `iwlist eth1 scan | grep WLAN`]
    			iwconfig eth1 essid WLAN enc XXX
    			dhclient eth1
    			exit 1;
    		elif [! -z `iwlist eth1 scan | grep lynksis`]
    			iwconfig eth1 essid lynksis enc XXX
    			dhclient eth1
    			exit 1;
    		elif [! -z `iwlist eth1 scan | INGW2A`]
    			iwconfig eth1 INGW2A
    			dhclient eth1
    			exit 1;
    		elif [! -z `iwlist eth1 scan`]
    			echo "Nessuna rete nota riconosciuta..."
    			exit 1;
    		fi
    		echo "Nessuna rete riconosciuta... :("
    		exit 1;
    		;;
    	stop)
    		echo "Deconfiguro la scheda Wi-Fi"
    		ifconfig eth1 down
    		exit 1;
    		;;
    	reload)
    		echo "Nuova richiesta DHCP..."
    		dhclient eth1
    		exit 1;
    		;;
    	force-reload)
    		echo "Rimozione module ipw3945"
    		modprobe -r ipw3945
    		echo "Carimamento modulo ipw3945"
    		modprobe ipw3945
    		
                    ***devo richiamare la funzione start!!***
    
    		exit 1;
    		;;
    	*)
    		echo "Usage: /etc/init.d/avvia_rete {start|stop|reload|force-reload}"
    		exit 1;
    		;;
    esac
    
    exit 0
    ho modificato lo script in questo modo per far si che vengano scelte automaticamente delle impostazioni a seconda della rete riconosciuta.. dovrebbe funzionare...

    ultimo piccolo problema
    nel case FORCE-RELOAD dovrei richiamare esattamente il case START... è possibile farlo (e come...) o devo fare copia incolla?

    grazie mille
    ciao
    Non dobbiamo trascurare la probabilità che il costante inculcare la credenza in Dio nelle menti dei bambini possa produrre un effetto così forte e duraturo sui loro cervelli non ancora completamente sviluppati, da diventare per loro tanto difficile sbarazzarsene, quanto per una scimmia disfarsi della sua istintiva paura o ripugnanza del serpente.

  5. #5
    Per far quello ti conviene creare delle function apposite per i vari case dello switch, in modo da poterle richiamare dove ti servono:
    codice:
    function start
    {
       <codice case start>
    }
    
    function stop
    {
       <codice case stop>
    }
    
    ...
    
    case "$1" in
    	start)
               start
               ;;
            stop)
               stop
               ;;
            reload)
               stop
               sleep 2
               start
               ;;
             ...
    esac
    NeapoliX GNU/Linux
    "Alla maggior parte della gente piace leggere la propria scrittura e annusare l'odore dei propri peti." (Auden)

  6. #6
    Utente di HTML.it L'avatar di hfish
    Registrato dal
    Dec 2000
    Messaggi
    3,180
    ok, grazie mille ancora una volta
    ciao
    luca
    Non dobbiamo trascurare la probabilità che il costante inculcare la credenza in Dio nelle menti dei bambini possa produrre un effetto così forte e duraturo sui loro cervelli non ancora completamente sviluppati, da diventare per loro tanto difficile sbarazzarsene, quanto per una scimmia disfarsi della sua istintiva paura o ripugnanza del serpente.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.