Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 10/05/2011, à 15: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, à 20: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, à 21: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, à 21: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, à 21: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, à 22: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, à 22: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, à 08: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, à 08: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

On ne peut pas mettre d'array dans un string!
https://sputnick.fr/

Hors ligne

#10 Le 11/05/2011, à 08:48

général03

Re : Lancer un shell lors d'une connexion wifi

sputnick a écrit :

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, à 12: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 lol


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, à 12:54

général03

Re : Lancer un shell lors d'une connexion wifi

Haleth a écrit :

Ton serveur à une ip public ? ou uniquement en local.

Moi je souhaite que le script se lance uniquement quand je suis en local.

Haleth a écrit :

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, à 14:42

FRUiT

Re : Lancer un shell lors d'une connexion wifi

général03 a écrit :

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, à 14: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, à 14:58

général03

Re : Lancer un shell lors d'une connexion wifi

FRUiT a écrit :

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, à 15: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, à 15: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, à 20:23

général03

Re : Lancer un shell lors d'une connexion wifi

En effet ca ressemble beaucoup à se que je souhaite big_smile

FRUiT a écrit :

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, à 21: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, à 21: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

On ne peut pas mettre d'array dans un string!
https://sputnick.fr/

Hors ligne

#19 Le 11/05/2011, à 22: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 12/05/2011, à 00:13)

Hors ligne

#20 Le 14/05/2011, à 15:00

général03

Re : Lancer un shell lors d'une connexion wifi

FRUiT a écrit :

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, à 15:01)

Hors ligne

#21 Le 17/05/2011, à 21:35

général03

Re : Lancer un shell lors d'une connexion wifi

général03 a écrit :

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, à 20: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, à 11: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, à 13: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, à 14: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.


On ne peut pas mettre d'array dans un string!
https://sputnick.fr/

Hors ligne