Les Allergies
Alimentaires
Posez votre question Signaler

[putty] et automatiser des commandes ssh

nonodev - Dernière réponse le 19 avril 2012 à 10:24
Bonjour,
Je travaille actuellement sur un script qui permettrait d'automatiser des commandes ssh.
Pour ce faire, j'utilise putty avec comme paramètres : putty.exe -ssh -2 -P 22 admin@ip -pw pass -m commande.txt
Le fichier commande.txt contient la liste des commandes à effectuer une fois la connexion ouverte.
La connexion se passe sans problème.
Le soucis, c'est qu'une fois la connexion effectué, la première chose que le serveur demande est "press any key to continue".
Quoi que je mette dans commande.txt, le serveur me jette.
D'où ma question :
Comment faire comprendre à putty d'envoyer le code ASCII d'une touche ? ou peut-être existe il une autre possibilité pour simuler le "press any key".
Any idea?
Merci.
Lire la suite 

[putty] et automatiser des commandes ssh »

18 réponses
Réponse
+0
moins plus
Simuler l'envoi d'un <enter> :
echo | commande
Ajouter un commentaire
Réponse
+0
moins plus
à mettre dans commande.txt ?
si tel est le cas, ça ne peut pas fonctionner.
en effet, putty envoie les commandes se trouvant dans commande.txt directement au server ssh, et ce dernier ne connais pas le "echo".
Ajouter un commentaire
Réponse
+0
moins plus
C'est putty ou une commande dans command.txt qui demande press any key ?
quel genre de commande dans command.txt ?
marius - 18 avril 2012 à 17:15
J'ai redéfini le PATH dans commandes.txt
PATH = lePathQueJaiEnLocal
Ca marche, je peux maintenant appeler des scripts et commandes locales.
Merci.

J'ai encore un petit pb : l'une des applications que je veux lancer à distance a besoin d'une bibliothèque logicielle (libIdbm.so).
Quand je la lance, j'obtiens ceci :
"Dependent module libldbm.so could not be loaded."
J'ai supposé que c'est le même problème : une variable d'environnement doit être différente du fait que je sois en automatique...
J'ai donc redéfini la totalité des variables d'environnement, sans résultat.
dubcek- 19 avril 2012 à 08:01
essayer avec
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/répertoire_ou_se_trouve_libIdbm.so
marius - 19 avril 2012 à 10:24
Bonjour,
Ca marche nikel, merci.
En fait, mon programme avait besoin de plus de librairies, j'ai donc exécuté le .profile, ce qui permet d'initialiser les variables d'environnement et le reste d'un seul coup. Mais je pense que ça revient au même.
Ajouter un commentaire
Réponse
+0
moins plus
Salut,

Moie pour faire cela j'ai trouvé un addon a putty extraputty ( http://extraputty.free.fr ).
Ce soft gratuit, te permet de sauvgarder des commandes ou de faires des sequence de commandes afin d'automatiser tout cela.
CE petti addon permet depuis peu ,de développer toi meme un soft pour automatiser tes tache car il offre une API (DLL) afin que des application win32 puissent envoyer ou recevoir des donnees via tout les protocoles putty.

J'ai vu qu'il y avait un example en MFC.

Voila j'espère que cela pourra t'aider car j'ai cherche longtemps avant de trouver.


Asebt.
cyd - 24 nov. 2008 à 15:34
Il y aussi KiTTY (http://www.9bis.net/kitty) qui permet d'automatiser une connexion à un serveur SSH et de lancer automatiquement des commandes à distance.
Ajouter un commentaire
Réponse
+0
moins plus
Salut.
Il faut peut être passer une commande à ssh.
Sou linux, j'utilise ssh -t pour envoyer des commandes automatisés.
voir là pour les autres options qui devraient être supporté : http://www.delafond.org/traducmanfr/man/man1/ssh.1.html
Ajouter un commentaire
Réponse
+0
moins plus
conf t, show ip.... un cisco, ou un bluecoat ? ;-)

pour cet usage j'utilise Linux et le prog "Expect"
il attend un mot clé et envoi ce que t'as programmé.

Ca fonctionne au poil.

sous windows? desolé!
Ajouter un commentaire
Réponse
-5
moins plus
Pourquoi tu ne peux pas utiliser une connexion en telnet?

Moi a ta place voila le script que j'aurai fait en PERL
#!/usr/bin/perl
use strict;

my $tmpfilename = "$ENV{TMP_PERL}\\tmp$$";
my $deviceip = $ARGV[0];

open(TMPFILE,"+>$tmpfilename");
print TMPFILE <<ECHO;
login telnet ##ici tes commandes à taper
mdp telnet
ter len 0 ## sert a ne pas s'areter à 25 lignes

sh int status

exit
ECHO
close(TMPFILE);


system("type $tmpfilename | nc -w 20 $deviceip 23 | grep -i \"connect\" > conf.log ");



Bon lla il te faut la commande nc.exe et ici le script attend que tu lui donne l'ip du Switch

Cordialement
Ajouter un commentaire
Ce document intitulé « [putty] et automatiser des commandes ssh » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?