[putty] et automatiser des commandes ssh [Fermé]

Signaler
-
 marius -
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.

7 réponses

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.
5
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

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.
Messages postés
18240
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
30 novembre 2020
5 204
Simuler l'envoi d'un <enter> :
echo | commande
à 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".
Messages postés
18240
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
30 novembre 2020
5 204
C'est putty ou une commande dans command.txt qui demande press any key ?
quel genre de commande dans command.txt ?
Re-Bonjour,
Dans mon fichier commandes.txt, je passe certaines commandes (comme lancer des scripts sur le serveur). En session ssh normale, ça marche bien, mais là, rien ne se passe.
Quand dans mon fichier commandes.txt, je mets :
commande 2>fichier
J'obtiens : commande: not found (dans fichier)

Lorsqu'il s'agit d'un script sur le serveur :
monscript 2>fichier2
Donne : monscript: not found

qqun aurait une idée ?
Messages postés
18240
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
30 novembre 2020
5 204
vérifier le PATH : echo $PATH
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.
Messages postés
18240
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
30 novembre 2020
5 204
essayer avec
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/répertoire_ou_se_trouve_libIdbm.so
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.
Messages postés
9688
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
2 octobre 2020
1 260
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
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é!
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