| ||||||||
Astucien ![]() | Bonjour,
Excusez-moi par avance pour la longueur de ce message.
Sous WinXP, j'ai installé FileZilla-server afin de transformer le PC qui se trouve chez moi en serveur FTP accessible depuis le PC que j'utilise à mon bureau ; pour cela, comme j'ai une adresse IP dynamique, je me suis procuré un nom de domaine (gratuit) sur no-ip.com, ce qui est bien pratique et tout baigne sous WinXP.
Ce programme no-ip associe mon nom de domaine à mon adresse IP dynamique du moment.
Il existe une version linux du programme no-ip (elle s'appelle noip2) qui active mon nom de domaine en fournissant les codes d'accès sur no-ip.com ; ça marche, je l'ai vérifié avec un programme de test en ligne (http://www.g6ftpserver.com/fr/ftptest) qui confirme que la connexion est effectivement établie avec mon nom de domaine.
Pour lancer ce programe noip2, il faut taper en ligne de comme /usr/local/bin/noip2 et pour l'arrêter, il faut faire un kill de son PID ou un killall noip2.
N'étant pas un fana de la ligne de commande, je me suis créé deux icônes, l'une pour démarrer le programme, l'autre pour l'arrêter.
Dans un cas d'espèce différent mais similaire (il s'agissait de monter/démonter un DD externe), un astucien m'avait rédigé un petit script bash que j'avais intégré dans une icône unique par le biais d'un lien symbolique et qui, en fonction du statut décelé, montait le DD externe s'il ne l'était pas ou le démontait s'il l'était.
J'ai adapté ce script au cas de figure qui m'intéresse :
(Je précise que noip2 est un exécutable)
Il y a malheureusement un problème car, quand j'exécute ce script alors que noip2 ne tourne pas, ps x essaye malgré tout d'exécuter killall et, évidemment, signale qu'aucun processus n'a été tué alors qu'il devrait logiquement démarrer noip2 ; en revanche, si noip2 tourne, le script l'arrête sans problème.
Illustration : 1er cas : noip2 fonctionne : [okapi@compaq_linux ~]$ ps x | grep noip2 résultat : okapi 27925 0.0 0.1 1948 772 ? Ss 11:29 0:00 /usr/local/bin/noip2 On observe que "noip2" apparaît deux fois : une fois pour l'exécutable et une seconde fois pour l'analyse grep.
2ème : je tue noip2 [okapi@compaq_linux ~]$ killall noip2 résultat :
On observe que l'exécutable a disparu mais qu'il subsiste noip2 dans la liste fournie par ps x : mon script constate alors que noip2 est présent et donc essaye de le fermer ... C'est un cercle vicieux ...
A mon avis, il faudrait exécuter ps x > ps.txt ce qui aura pour effet de créer une fichier.txt contenant les logiciels en action sans pour autant y inclure la fameuse ligne relative à grep --color noip2, puis opérer une recherche dans ce fichier texte pour essayer d'y trouver ou non noip2 (qui sera à ce moment l'exécutable exclusivement).
Dès lors, selon qu'il s'y trouvera ou non, le reste du script fonctionnera correctement.
Le problème, c'est que je ne sais pas comment programmer la recherche d'un mot dans un fichier.txt
Quelqu'un pourrait-il m'aider à rédiger correctement la ligne initiale : création du fichier texte : ps x > ps.txt (ça marche) puis, et là, je patine, la ligne de commande permettant la recherche de "noip2" dans le fichier texte ps.txt et éventuellement en prime, une instruction pour détruire le fichier ps.txt à la fin de l'exécution du script (mais ce n'est pas indispensable)
Merci d'avance.
Amicalement, Modifié par Mimile le 14/11/2007 12:13 | |||||||
Publicité | ||||||||
| ||||||||
![]() ![]() | Re-
Au lieu de m'épuiser à rédiger mon message, j'aurais mieux fait d'arpenter le net.
J'ai trouvé ma solution.
Pour ceux que ça intéresserait, voici le script qui fonctionne ;
#!/bin/bash
Pas plus compliqué que ça ...
Un clic sur l'icône, noip2 démarre - un autre clic, noip2 s'arrête.
Amicalement, | |||||||
|
Les bons plans du moment PC Astuces | Tous les Bons Plans | ||||||||||||||||||
|