#1 Le 10/05/2011, à 14:18
- général03
Lancer un shell lors d'une connexion wifi
Bonjour,
je souhaite lancer un script lorsque je suis chez moi et que je suis connecté à mon réseau WIFI domestique.
Le crontab se paramètre avec un intervalle de temps. Y a t il un équivalent pour lancer un script sur une connexion wifi ? Ou alors crontab peut faire aussi cela ?
Merci
Hors ligne
#2 Le 10/05/2011, à 19:25
- Haleth
Re : Lancer un shell lors d'une connexion wifi
Hmm
Tu lance un script régulierement avec Cron
Ce script vérifie la connexion wiki, et execute du code si elle est établi
Pour voir si tu es connecté en wifi, tu peux extraire des données à partir de ifconfig
Pour savoir si tu es chez toi, tu peux configurer ton DHCP (si tu utilise), et mettre le meme adresse, que tu vérifiera dans le script
Ubuntu is an ancien African word which means "I can't configure Debian"
Because accessor & mutator are against encapsulation (one of OOP principles), good OOP-programmers do not use them. Obviously, procedural-devs do not. In fact, only ugly-devs are still using them.
Hors ligne
#3 Le 10/05/2011, à 20:17
- général03
Re : Lancer un shell lors d'une connexion wifi
En faite l'heure actuel je ne vérifie pas que je suis bien dans mon réseau domestique je lance mon script manuellement. Mais j'aimerais que cette tâche soit faite automatique.
Comment détecter que je suis connecté sur le bon bon réseau wifi ? Je suis obligé de lancer un script qui vérifie toutes les minutes si je suis connecté ?
Hors ligne
#4 Le 10/05/2011, à 20:18
- Haleth
Re : Lancer un shell lors d'une connexion wifi
Et bien, je ne connais pas d'autre méthode.
Ubuntu is an ancien African word which means "I can't configure Debian"
Because accessor & mutator are against encapsulation (one of OOP principles), good OOP-programmers do not use them. Obviously, procedural-devs do not. In fact, only ugly-devs are still using them.
Hors ligne
#5 Le 10/05/2011, à 20:31
- général03
Re : Lancer un shell lors d'une connexion wifi
Niveau perf je trouve cela pas top car régulièrement un script essaie de se connecter pour rien si je ne suis pas chez moi.
N'y a t il pas un équivalent cron ?
Hors ligne
#6 Le 10/05/2011, à 21:00
- Haleth
Re : Lancer un shell lors d'une connexion wifi
Hein ? Ben, mon script (enfin, la vague idée de script que je t'ai soumise) est lancé par un cron
Niveau perf, ca fait rien, vu que c'est 2 lignes
Ubuntu is an ancien African word which means "I can't configure Debian"
Because accessor & mutator are against encapsulation (one of OOP principles), good OOP-programmers do not use them. Obviously, procedural-devs do not. In fact, only ugly-devs are still using them.
Hors ligne
#7 Le 10/05/2011, à 21:46
- FRUiT
Re : Lancer un shell lors d'une connexion wifi
Et tu te connectes avec quoi (le logiciel) ? Peut-être certains connexion managers savent lancer un script utilisateur post connexion sur une interface donnée, faudrait se renseigner sur chacun d'entre eux.
Neon Suite by FRUiT (kde4.6) [url]http://[Merci de relire les règles]/yzm7cee[/url]
"Pour la carotte, le lapin est la plus parfaite incarnation du mal" (R. Sheckley)
clean
Hors ligne
#8 Le 11/05/2011, à 07:31
- général03
Re : Lancer un shell lors d'une connexion wifi
Ben j'utilise pas de logiciel. Mon souhait est de lancer une synchronisation entre mon PC et mon serveur donc c'est une ligne de commande.
Peut être que le "wifi manager" permet de lancer un script ???
Hors ligne
#9 Le 11/05/2011, à 07:44
- sputnick
Re : Lancer un shell lors d'une connexion wifi
Pourquoi se prendre la tête ?
if ping &>/dev/null -c1 google.com; then rsync -a /source host:/cible; fi
Je sais, un peu partout, tout le monde s'entretue, c'est pas gai, mais d'autres s'entrevivent, j'irai les retrouver.
https://sputnick.fr
Hors ligne
#10 Le 11/05/2011, à 07:48
- général03
Re : Lancer un shell lors d'une connexion wifi
Pourquoi se prendre la tête ?
Ben parce que si jamais je lance la commande que tu m'indiques et que je ne suis pas connecté ma synchronisation ne fonctionnera pas. C'est pour cela que j'aimerais lancé le script dès ma connexion wifi établie (si c'est possible bien sur !! )
Et je n'ai pas envi de mettre dans mon crontab un script qui se lance toutes les minutes car si je ne suis pas chez moi mon pc ma consommer des ressources pour rien
Hors ligne
#11 Le 11/05/2011, à 11:11
- Haleth
Re : Lancer un shell lors d'une connexion wifi
Ton serveur à une ip public ? ou uniquement en local.
Un script dans un crontab ne consomme rien du tout.. ou alors t'es sur un dinosaure
Ubuntu is an ancien African word which means "I can't configure Debian"
Because accessor & mutator are against encapsulation (one of OOP principles), good OOP-programmers do not use them. Obviously, procedural-devs do not. In fact, only ugly-devs are still using them.
Hors ligne
#12 Le 11/05/2011, à 11:54
- général03
Re : Lancer un shell lors d'une connexion wifi
Ton serveur à une ip public ? ou uniquement en local.
Moi je souhaite que le script se lance uniquement quand je suis en local.
Un script dans un crontab ne consomme rien du tout
Peut être une fois mais si tu répètes le script toutes les minutes au bout de plusieurs heures ca en fait des tests pour rien.
Hors ligne
#13 Le 11/05/2011, à 13:42
- FRUiT
Re : Lancer un shell lors d'une connexion wifi
Ben j'utilise pas de logiciel. Mon souhait est de lancer une synchronisation entre mon PC et mon serveur donc c'est une ligne de commande.
Peut être que le "wifi manager" permet de lancer un script ???
Ce qui est sur, c'est que le logiciel qui te connecte au wifi, sait exactement à quel moment il te connecte. Pour récupérer cette info dans une console, à part faire une boucle infinie ou un cron je vois pas trop comment faire.
Ce logiciel (qu'il ait une GUI ou non) peut éventuellement offrir la possibilité d'exécuter des commandes post-connexion, mais là tout va dépendre du logiciel en question, pas sur que wifi-manager propose ce genre de services. Et il te faudra surement choisir ce dit logiciel en fonction des possibilités qu'il offre.
Dernière modification par FRUiT (Le 11/05/2011, à 13:43)
Neon Suite by FRUiT (kde4.6) [url]http://[Merci de relire les règles]/yzm7cee[/url]
"Pour la carotte, le lapin est la plus parfaite incarnation du mal" (R. Sheckley)
clean
Hors ligne
#14 Le 11/05/2011, à 13:58
- général03
Re : Lancer un shell lors d'une connexion wifi
Ce logiciel (qu'il ait une GUI ou non) peut éventuellement offrir la possibilité d'exécuter des commandes post-connexion, mais là tout va dépendre du logiciel en question, pas sur que wifi-manager propose ce genre de services. Et il te faudra surement choisir ce dit logiciel en fonction des possibilités qu'il offre.
En effet j'ai jeté un coup d'oeil dans wifi manager mais je n'ai pas trouvé se qui m'intéresse mais je suis accord avec toi c'est du côté logiciel que je dois avoir des réglages à faire
Hors ligne
#15 Le 11/05/2011, à 14:04
- FRUiT
Re : Lancer un shell lors d'une connexion wifi
Personnellement j'ai un dossier /etc/network/if-up.d qui semble-t-il exécuterait un certain nombre de scripts à la connexion (comme par exemple ntpdate), vois peut-être de ce coté là... Par contre là ton script sera exécuté que la connexion soit wifi... ou pas...
Dernière modification par FRUiT (Le 11/05/2011, à 14:09)
Neon Suite by FRUiT (kde4.6) [url]http://[Merci de relire les règles]/yzm7cee[/url]
"Pour la carotte, le lapin est la plus parfaite incarnation du mal" (R. Sheckley)
clean
Hors ligne
#16 Le 11/05/2011, à 19:23
- général03
Re : Lancer un shell lors d'une connexion wifi
En effet ca ressemble beaucoup à se que je souhaite
Par contre là ton script sera exécuté que la connexion soit wifi... ou pas...
Apparrament il est possible de déterminer si je suis connecté à wlan ou eth, à vérifier !
Je viens de faire mon script dans ce dossier mais rien ne se passe. Mais je ne trouve pas les log du wifi (j'ai rien dans les log d'unison) , tu sais où ils sont ?
Hors ligne
#17 Le 11/05/2011, à 20:33
- FRUiT
Re : Lancer un shell lors d'une connexion wifi
Je n'en sais pas plus sur ce dossier, c'est juste une piste comme ça, essaye de te renseigner sur google. Il faut peut-être au moins redémarrer, ou updater la nouvelle config mais je ne sais pas par quelle commande. En même temps c'est pas parce que ça en a l'air que ça a cette fonction. Et unison désolé je connais pas non plus.
Neon Suite by FRUiT (kde4.6) [url]http://[Merci de relire les règles]/yzm7cee[/url]
"Pour la carotte, le lapin est la plus parfaite incarnation du mal" (R. Sheckley)
clean
Hors ligne
#18 Le 11/05/2011, à 20:44
- sputnick
Re : Lancer un shell lors d'une connexion wifi
Si tu nous disait plutot ce que tu cherches vraiment à faire ? La je trouve ça vague perso.
Ton script c'est pour mettre à jour un DNS ou qq chose du genre ?
Sinon il suffit de configurer le fichier /etc/network/interfaces avec la clause post-up dans la section ad-hoc de l'interface wlan0
LANG=C man interfaces | less +/post-up
Je sais, un peu partout, tout le monde s'entretue, c'est pas gai, mais d'autres s'entrevivent, j'irai les retrouver.
https://sputnick.fr
Hors ligne
#19 Le 11/05/2011, à 21:58
- demonipuch
Re : Lancer un shell lors d'une connexion wifi
Bonsoir
En regroupant les infos trouvées ici et ici voici un exemple de script. A vous de modifier les variables et la commande à exécuter lors de la connexion wifi en fonction de vos besoin :
Crée un fichier nommé 90wifi par exemple dans le répertoire /etc/NetworkManager/dispatcher.d :
sudo nano /etc/NetworkManager/dispatcher.d/90wifi
Et copie y le script suivant :
#!/bin/bash
IF=$1
STATUS=$2
USER="votre_login"
IFACE="votre_interface_wifi"
SSID="votre_ssid"
CMD="votre_commande"
CHECK_SSID=`iwconfig "$IFACE" | sed -r -n '/SSID/{s/.*SSID:"([^"]+)".*/\1/g;p;q}'`
if [ "$IF" = "$IFACE" ] && [ "$STATUS" = "up" ] ; then
if [ "$CHECK_SSID" = "$SSID" ] ; then
/bin/su "$USER" -c "$CMD"
exit 0
fi
fi
exit 0
A chaque connexion à votre réseau wifi, la commande indiquée dans le script s'exécutera.
Dernière modification par demonipuch (Le 11/05/2011, à 23:13)
Hors ligne
#20 Le 14/05/2011, à 14:00
- général03
Re : Lancer un shell lors d'une connexion wifi
Personnellement j'ai un dossier /etc/network/if-up.d qui semble-t-il exécuterait un certain nombre de scripts à la connexion (comme par exemple ntpdate), vois peut-être de ce coté là...
Je viens de mettre mon script dedans et il est bien exécuté (j'ai fais un mkdir pour vérifier). Par contre ma commande unison nécessite de saisir mon mot de passe comment puis je faire ?
La commande que tu précise demonipuch c'est pour se connecter or moi j'y suis déjà !
Dernière modification par général03 (Le 14/05/2011, à 14:01)
Hors ligne
#21 Le 17/05/2011, à 20:35
- général03
Re : Lancer un shell lors d'une connexion wifi
Par contre ma commande unison nécessite de saisir mon mot de passe comment puis je faire ?
Sinon puis je forcer l'affichage d'une console pour saisir mon mot de passe ??
Hors ligne
#22 Le 18/05/2011, à 19:33
- général03
Re : Lancer un shell lors d'une connexion wifi
J'ai lu que la commande suivante permetait d'ouvrir un terminal
gnome-terminal -e ~/bash/sync-unison.sh
Dans un terminal ca fonctionne mais quand je tape dans mon fichier /etc/network/if-up.d/sync-unison la commande présente aucun terminal ne s'affiche !!!
Pourquoi ??
Hors ligne
#23 Le 20/05/2011, à 10:48
- général03
Re : Lancer un shell lors d'une connexion wifi
J'ai essayé aussi xterm mais toujours rien !!
Help help ...
Hors ligne
#24 Le 20/05/2011, à 12:02
- Sciensous
Re : Lancer un shell lors d'une connexion wifi
remplace le ~ par /home/user/ peut etre ?
antiX 19 et 21 et Ubuntu 20.04 et 22.04
( sous LXDE et gnome-shell )
Hors ligne
#25 Le 20/05/2011, à 13:19
- sputnick
Re : Lancer un shell lors d'une connexion wifi
Il s'agit d'un probleme de droit d'afficher sur le DISPLAY. Et puis n'oublie pas que c'est "root" qui lance les commandes !
Voici ce que tu doit rajouter dans ton script :
. /etc/profile
export DISPLAY=:0
export XAUTHORITY=/home/général03/.Xauthority
gnome-terminal -e ~général03/bash/sync-unison.sh
Adapte général03 par ton vrai nom de user Linux.
Je sais, un peu partout, tout le monde s'entretue, c'est pas gai, mais d'autres s'entrevivent, j'irai les retrouver.
https://sputnick.fr
Hors ligne