Connexion automatique à un hotspot neuf
Forum Programmation : Connexion automatique à un hotspot neuf
Bonsoir !
Actuellement sous windows vista, j'aimerais savoir comment faire pour que la page de connexion hotspot se log toute seule tout le temps (faire comme si on avait jamais de coupure quoi...)
Elle se déconnecte toutes les deux heures et c'est assez génant
J'ai trouvé une solution en shell mais je ne sais pas si cela marche, si quelqu'un pouvais y regarder...
Et comment lancer ce .sh automatiquement tout le temps ? Avec quel programme ?
Merci à tous
Code :
|
Salut,
Tu as un script bash alors que tu es sous Vista...
Sinon, pour exécuter un fichier tous les X temps, tu as le planificateur de tâches disponible dans Accessoires / Outils système
Tu as un script bash alors que tu es sous Vista...
Est-ce que je vais pouvoir le faire fonctionner ?
Si non, est-ce possible d'en créer un pour vista ?
Si oui, je le mets dans un bloc note, enregistrer en .sh et je le mets dans le planificateur de tâches toutes les 2h et c'est bon ?
Bah un script sh est destiné à un système unix, je ne sais pas si c'est possible d'exécuter un script sh, pas à ma connaissance en tout cas.
Ben quand je l'enregistre en .sh il me dit : .dll commune du Shell
Sinon tu pourrais me dire quel script serait adapter dans ce cas là ?
Je t'explique vite fait, toutes les deux heures, je dois me réidentifier sur la hotspot (déconnexion automatique) et je ne voudrais pas faire cela tout le temps, donc il me faudrait un script qui le fasse seul, comme ça quand je suis pas là il reste connecté sur internet.
Merci beaucoup
Utilise Cygwin pour faire tourner ton script bash.
Répondre à SiM07
SiM07, mon script marchera avec Cygwin ? Il est correct ? (j'ai trouvé ça sur le net...)
J'ai essayé avec tache planifié et ça ne marche pas
Chose que je ne comprends pas trop :
j'ai copié le code dans un blocnote, enregistré en .sh (tous les fichiers et non .txt) puis mis sur mon bureau.
Donc j'installe Cygwin, et que dois-je faire après ? (un mini tuto si c'est possible)
Je ne sais pas plus.
Répondre à SiM07
Quelqu'un pourrait regarder mon script et mon dire s'il semble fonctionner avec Cygwin ?
A la base il est fait pour cron donc je me demande...
Merci beaucoup
Oui il doit pouvoir fonctionner avec Cygwin, cygwin permet d'exécution de script bash sous Windows.
Répondre à SiM07
ok ok je viens d'installer Cygwin, de le lancer, et un genre de page "dos" apparait, quel marche à suivre pour mettre un fichier à lancer toutes les x min ?
Merci
Tu te sers de cron pour l'exécuter tous les X heures :
http://csc.csudh.edu/kleyba/cygwin-cron.pdf
Hum je n'y comprends pas grand chose, je vais regarder ça plus en détail, mais si tu as à peu près le même en français, si c'est plus compréhensible, merci de me l'indiquer.
Et bien il y a l'installation étape par étape de cygwin, avec l'installation de cron. Car lors de l'installation de cygwin, tu as la possibilité d'installer cron, je ne sais pas si tu l'as fait lors de ton installation...
Après, on t'indique quelques commandes à taper pour configurer cron, si tu l'as bien fait tu devrais avoir le service correspondant dans les services windows (tape la commande services.msc) pour avoir la liste des services windows.
Ensuite tu créé ton fichier avec ton script bash, et tu le fait exécuter avec cron. Pour apprendre à te servir de cron, tu peux regarder ce lien : http://doc.ubuntu-fr.org/cron
je comprends déjà mieux l'utilisation de Cygwin, j'ai installé ce qu'il me fallait (toute la partie admin) mais quand je lance Cygwin pour rentrer ces valeurs, ça ne marche pas :
chmod +r etc/passwd
chmod +r etc/group
Il me dit :
chmod : changing permission of etc/passwd (ou /group) : permission denied
Pour info, j'ai windows vista et je pense que c'est à cause des permissions système, mais c'est pas moi le pro...
je suis pas sur que tu puisses changer les droits sur ces fichiers de toute manière... qu'est ce que tu veux faire avec ces fichiers ?
Ben c'est à faire dans le tuto anglais que tu m'as mis... :
http://csc.csudh.edu/kleyba/cygwin-cron.pdf
Sinon je n'arrive pas à configurer Cron, quand il me demande un mot de passe, je le mets, il me redemande de le retaper, je remets le même, logique, et puis après ça me mets que le fichier n'est pas modifiable... Je pense que ça viens de là...
Ah pardon, j'avais pas fait attention.
Cygwin ne t'a pas demandé de créer un mot de passe admin lorsque tu l'as installé ? Ca fait longtemps que j'ai pas utilisé Cygwin, je ne me souviens plus si tu es directement en root ou pas, mais ça m'étonnerait.
Avant de taper les deux commandes chmod, essaie de taper la commande su
"user root does not exist..."
Voilà ce qu'il me dit
Cygwin ne m'a pas demandé de mot de passe...
Sur un autre site, ils ne parlent pas de la modification des droits sur les deux fichiers ( http://www.newmedialogic.com/node/33 )
Tu avais lancé la commande cron-config ? Qu'est ce que ça a donné ?
C'est à quel moment que ça te demande un mot de passe que tu dois taper 2 fois ?
Ok, vu que tu as répondu non à la question "Do you want to the cron deamon to run as yourself?", il essaie de trouver un compte qui a des privilèges, vu qu'il en trouve pas, il veut essayer d'en créer un.
Vu que tu ne vas utiliser cron qu'avec ton compte utilisateur, répond oui à cette question, et tu ne devrais pas avoir de problèmes pour la suite.
Essaie d'exécuter cygwin en tant qu'administrateur
La case "exécuter en tant qu'administrateur" est grisé
(j'ai fait clic droit, propriété et compatibilité.
J'ai regardé mon compte utilisateur, je suis bien administrateur du système...
J'ai maintenu MAJ, j'ai cliqué droit sur Cygwin, j'ai fait : executer en tant qu'admin, et je crois avoir réussi...
J'obtiens ceci maintenant :
J'ai un serive (cron deamon) maintenant...
Mais je crois qu'il y a encore des problèmes...
Hmm... donc là il a pas réussi à démarrer le service.
Tu peux essayer de le démarrer à la main (tu vas dans services.msc et tu démarres le services correspondant).
Tu devrais pouvoir utiliser cron après.
Erreur 1069 : L'échec d'ouverture de session a empêché le démarrage du service...
EDIT :
Dans les options du service, j'ai modifié le type de connexion... J'ai doublé cliqué dessus, j'ai pris l'onglet "connexion", j'ai mis "compte système local" (je n'ai pas coché l'option "interagir avec le bureau".
Est-ce bon ???
Si oui, comment exécuter le script maintenant ?
Message édité par simdu80 le 13-01-2009 à 16:00:20
Tu as réussi à le démarrer le service ou pas au final ?
Si oui, maintenant :
| Citation : Ensuite tu créé ton fichier avec ton script bash, et tu le fait exécuter avec cron. Pour apprendre à te servir de cron, tu peux regarder ce lien : http://doc.ubuntu-fr.org/cron |
Au départ, il faudra que tu fasses un crontab -e pour créer le fichier de cron. Après, il faudra ajouter une ligne dans ton fichier de cron pour lancer ton fichier. Tu peux trouver toutes les infos dans le lien que je t'ai donné.
Voilà ce que me donne crontab -e.
A noté que quand j'essaie de lancer crontab.exe qui se trouve dans le dossier de Cygwin, il m'ouvre une invite de commande qu'il referme aussitot (pas le temps de lire...)
Voilà pour ce qu'il est du service, je pense qu'il est bien activé ce cron...
Alors, oui le service cron est bien démarré.
Après, pour l'histoire de /bin/vi no such file or directory; c'est parce que vi n'a pas été installé avec cygwin.
Si tu relances une installation de cygwin, tu dois pouvoir ajouter des packages à ceux existants, tu dois pouvoir trouver vi dedans (si tu trouves vim, prend le aussi).
Sinon, autre solution, ça serait de voir quel éditeur de fichier tu as déjà d'installé sur ton cygwin, et de modifier l'éditeur par défaut... mais bon, à moins que tu connaisses bien linux, je ne pense pas que tu sauras dire quels éditeurs tu as déjà d'installés ![]()
Edit: ah oui aussi, je ne sais pas si tu l'as déjà installé, mais installes le package curl dont tu vas avoir besoin dans ton script (toujours lors de l'installation de cygwin)
Message édité par OmaR le 13-01-2009 à 16:38:06
Voilà alors j'ai réinstallé
Donc avec toutes les explications j'en ai plein la tête et j'ai vraiment du mal pour lancer le script (tout du moins, essaie de configurer le crontab...)
Donc pour l'instant, j'ai lancé : crontab -e
Il m'affiche une belle fenêtre avec des ~ à chaque ligne donc je pense que c'est bien pour le configurer
Le script se trouve dans C
cygwin/
Je veux le lancer toutes les 1min (ça ne ralenti pas le PC ?)
Donc il faut que j'écrive ça dans cron : */1 * * * *
Mais après je suis un peu pommé :s
Alors, déjà, il va falloir lancer une première fois ton script pour être sûr qu'il fonctionne. Imaginons que ton fichier de script se trouve dans /home/nowis et qu'il se nomme "script.sh", pour l'exécuter tu feras :
Code :
|
Ca devrait donc exécuter ton script, vérifie que tout fonctionne bien, que tu es toujours connecté à ton hotspot, etc...
Ensuite, on va vérifier que le service cron fonctionne bien, et qu'il t'exécute bien les tâches. Ce que tu peux faire, c'est ajouter cette ligne :
* * * * * echo `date` >> /tmp/date.log |
Cette ligne va exécuter toutes les minutes la commande date (qui va te donner l'heure actuelle), et la résultat de la commande est écrit dans le fichier /tmp/date.log
Tu as juste besoin d'aller voir dans /tmp/date.log quelques minutes plus tard pour voir que tu as bien la date qui a été écrite chaque minute depuis que tu as ajouté la ligne.
Ensuite, pour l'exécuter toutes les minutes, tu peux tout simplement faire : * * * * * (* ou */1 c'est équivalent)
Après, je ne sais pas combien de temps va prendre ton script, il se peut que ça ralentisse un peu... Maintenant, il me semble que tu disais au début que tu devais le lancer toutes les 2h, donc un petit * */2 * * *, et ça devrait être réglé, non ?
Message édité par OmaR le 13-01-2009 à 17:48:15
En essayant de faire fonctionner mon script comme tu l'as dit :
(Si je compare, il n'aime pas trop les espaces et la commande "fi" (c'est pas plutot "if" ?
Quand j'essaie de faire la commande avec cron :
Là c'est un gros problème ^^' je croyais que ça marchait bien...
Alors, pour l'exécution de ton script :
En fait, c'est qu'il doit y avoir des sauts de ligne (\r) qu'il n'aime pas... Windows utilise \r\n pour faire un saut de ligne, unix utilise \n (il me semble), ce qu'il fait qu'il ne reconnait pas vraiment \r...
Que te donne la commande file script.sh ?
Au passage "fi" existe en bash, if permet de commencer la condition et fi de la finir. Les mots sont inversés lorsqu'ils finissent la condition / boucle.
Ensuite, je me doutais bien que ça allait arriver, le moment où tu allais découvrir vi... ![]()
En fait, là, quand tu édites ton fichier de cron, tu utilises l'éditeur vi qui a énormément de commandes pour faire tout plein de choses dans le fichier. Quand tu ouvres le fichier, tu n'es pas en mode édition par défaut, tu es juste en mode lecture, donc tu ne peux rien taper, si tu tapes quelque chose, ça va exécuter les différentes commandes de vi, dans ton cas, ça a du exécuter une recherche en utilisant une expression régulière, et donc te retourner une erreur.
Lis ce site pour des informations sur les commandes de vi : http://jph.durand.free.fr/vi.htm
A retenir :
i pour passer en mode insertion
Echap (la touche) pour sortir du mode insertion
:w pour sauvegarder (quand tu es en mode lecture)
:q pour quitter (si tu as fait des modifications, il te demande de sauvegarder avant)
:q! pour quitter sans sauvegarder
:wq pour sauvegarder et quitter
Message édité par OmaR le 13-01-2009 à 18:17:20
1) script.sh: Bourne-Again shell script text executable
2) Pour les problèmes de \r je fais quoi alors ?
3) Je ne comprends absolument pas l'éditeur vi
J'ai bien taper "crontab -e" j'ai essayé de faire "i [entrer]" je suis donc reparti à la ligne, et j'ai essayé de faire le test comme tu me l'a indiqué, et après :q [entrer] et il ne m'a rien demandé...
4) Désolé de t'embêter...
1) et 2) En fait, j'attendais le résultat de file script.sh pour voir ce qu'on allait faire avec les \r
Ton fichier script.sh, tu l'as fait avec le bloc notes ? Réouvre le script avec le bloc notes (depuis windows donc), et quand tu l'enregistres, change l'encodage, met le en Unicode... en espérant que ça fonctionne ! Parce que sinon, je ne vois pas trop d'autre faire, à part recopier ligne par ligne depuis vi, ou sinon d'éditer le fichier avec vi pour supprimer les sauts de ligne, s'ils sont visibles.
3) Tu appuies sur la touche "i", puis tu entres ta ligne (* * * * * etc...), ensuite tu appuies sur "echap" pour passer en mode lecture, puis tu tapes ":wq", il va sauvegarder et quitter l'éditeur.
Tu peux ensuite taper la commande crontab -l pour lister toutes les entrées et vérifier que tu as bien ton entrée dedans.
4) pas de problème, je ne serai pas sur un forum si ça m'embêtait ! et puis j'aurais arrêté de répondre
Message édité par OmaR le 13-01-2009 à 19:05:44
Ah ça y est j'ai tout compris
Malheureusement pour le fichier en unicode, quand j'essaie de le lancer, il me dis : cannot execute binary file...
Ensuite, crontab a l'air de bien fonctionner, juste un truc, quel touche utiliser pour faire le `date` car j'utilise le " " mais ça ne doit pas être ça...
Si refaire un script est trop compliqué, j'ai plus qu'à laisser tomber car je ne m'y connais absolument pas
Comme je l'ai dit, je l'ai trouvé sur le web et la personne le faisait marcher sur linux avec cron...
Ok, donc ça marche pas quand c'est en unicode, donc, essaie d'éditer le fichier avec vi (vi script.sh) et tu devrais avoir des \r qui trainent je suppose, supprime les tous (dois y avoir un raccourci pour faire ça en deux trois clics sous vi, mais je le connais pas assez bien pour te dire comment).
Pour faire le `, c'est Alt Gr + 7
Et tu n'auras pas besoin de refaire un script, il faudra juste supprimer les \r, donc j'essayai de trouver la méthode la plus simple, c'est tout
Alors en lisant attentivement le post de celui qui a laissé le message, à l'installation de Cygwin, il faut sélectionner "DOS / txt" donc je viens de le faire... (sinon il n'aime pas le fi soit-disant)...
En testant, cela à l'air de bien fonctionner :
Par contre, je vois bien la ligne de crontab, mais le date.log est toujours vide...
J'ai fait ainsi :
j'ouvre cygwin
je tape "crontab -e" puis je fais "i * * * * * echo `date` >> /tmp/date.log [echap] :wq" il sauvegarde et me dit que c'est bon, je vérifie avec "crontab -l" elle est bien là... J'attends 2-3 min et j'ouvre "date.log" mais c'est toujours blanc...
Vu que tu as réinstallé cygwin, vérifie que le service cron soit toujours démarré, au cas où.
Ensuite, entre ces quelques commandes à la suite et donne moi le résultat de leur exécution :
$ ps -lef | grep cron |
Message édité par OmaR le 13-01-2009 à 20:24:31
Voilà un screen global
après le crontab j'ai fait "i cat /tmp/date.log [echap] :wq" et voilà la réponse
Le service est bien activé
C'est bizarre, parce que dans les processus (ps), il n'y a pas de trace de cron... Pourtant avec cygrunsrv, tu as le daemon cron qui est bien lancé...
Quand tu as tapé ton crontab -e, il te dit qu'il y a une erreur dans ton fichier... "bad minute", tu aurais une erreur sur les minutes... Es tu sûr que tu n'as pas mis "i" comme minute ? ![]()
Il ne faut pas que tu vois i affiché à l'écran, c'est juste pour entrer en mode édition hein !
Que donne la commande : cat /tmp/crontab.9a6HIDqx0L ?
Message édité par OmaR le 13-01-2009 à 21:38:14
même erreur...
J'essaie de tout réinstaller et j'édit mon sujet après
EDIT : après réinstallation, il y a un truc dans "date.log" !!! :
Tue Jan 13 22:07:01 2009
Tue Jan 13 22:08:02 2009
ça a l'air de fonctionner
Donc je vais essayer le script maintenant et je te dis quoi !
On a avancé à grand pas aujourd'hui
Merci d'être beaucoup présent
Message édité par simdu80 le 13-01-2009 à 22:09:39
Pas de problème, j'ai activé la notification par mail, ça va plus vite comme ça
D'accord !!!
Pour le faire tourner en boucle, je peux, dans mon bloc note, copier 50 fois tout ce qu'il y a entre les "if [...] fi" ?
Euh... pourquoi le faire tourner en boucle ?
J'aimerais que toutes les 1h55 il tourne en boucle pendant 10min.
Donc le code ça serait du style
55 1 * * * sh /cyg/script.sh
Et pour qu'il tourne pendant 10min par exemple, il faudrait que je rajoute X fait ce code sous mon script :
Code :
|
Message édité par simdu80 le 14-01-2009 à 05:59:53
| simdu80 a écrit : J'aimerais que toutes les 1h55 il tourne en boucle pendant 10min.
|
Il me semble pas... ça voudrait dire que tu lances le script tous les jours à 1h55 du matin, pas que tu veux le lancer toutes les 1h55 !
| simdu80 a écrit :
|
Plutôt que de copier le code 150 fois, faudrait faire une boucle
Une boucle while par exemple : http://www.patpro.net/blog/index.p [...] dans-bash/
Il y a 342 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.




