Rechercher : dans
Par :

[PERL] Executer commandes à distances / ssh

Dernière réponse le 23 jun 2009 à 11:06:03 Houston-12, le 5 jun 2009 à 11:17:01 
 Signaler ce message aux modérateurs

Bonjour,

Dans le cadre de l'administration de plusieurs serveurs, je cherche a créer un script qui effectue différentes commandes system sur une liste de serveur et qui renvoie les résultats dans un fichier local, le tout via ssh.

Jusqu'à présent, j'ai fait ceci :

#!/usr/bin/perl

use Net::SSH2;
use Net::SSH2::Channel;

my $ssh2 = Net::SSH2->new();
$ssh2->method('HOSTKEY', 'aes256-cbc');
$ssh2->connect('@IP') or die "Connexion impossible !\n";
$ssh2->auth_publickey ('root', 'c:/id_rsa.pub', 'c:/identity');

my $cmd = $ssh2->channel();
$cmd->shell('ps -ef');
while (<$cmd>){ print } 

Il me renvoie l'erreur "Can't call method "shell" on an undefined value at c:\test3.pl line 12."
L'erreur est la même si j'utilise la méthode exec.

Pouvez vous m'aidez ?

Merci
Configuration: Windows 2000
Firefox 3.0.6

Meilleures réponses pour « [PERL] Executer commandes à distances / ssh » dans :
Se logguer à distance avec ssh (Linux) Voir(Pour ceux qui voudraient avoir un rappel sur SSH) Les commandes suivantes nécessitent d'avoir un compte sur la machine sur laquelle on veut se connecter et qu'un serveur SSH y soit installé. Sous Linux, la syntaxe est simple (le client...
Se logguer à distance avec ssh ( Windows ) Voir( Pour ceux qui voudraient avoir un rappel sur ssh ) Contrairement à la plupart des distributions Linux, Windows ne possède pas de client ssh en natif. Il faut donc en installer un. Pour cela plusieurs solutions : Vous pourrez en...
Windows 7: Faire apparaitre la commande exécuter VoirTout comme sous Vista, par défaut la commande Exécuter n’apparaît pas dans le menu Démarrer de Windows 7. Il faut taper Exécuter dans Rechercher pour y accéder. Si l'on veux faire apparaître cette commande de manière permanente dans le menu...
Utilisation de Telnet VoirPrésentation de Telnet Telnet est un protocole permettant d'émuler un terminal à distance, cela signifie qu'il permet d'exécuter des commandes saisies au clavier sur une machine distante. L'outil Telnet est une implémentation du protocole...

1

lami20j, le 5 jun 2009 à 15:12:10

Salut,

$cmd->shell('ps -ef');
Si c'est ça la ligne, alors sous windows il n'y a pas la commande ps 106485010510997108

Répondre à lami20j

2

Houston-12, le 5 jun 2009 à 15:16:32

Salut lami20j,

Le pc qui execute le script est sous windows mais les serveurs sur lesquels je me connecte sont sous Unix.
L'objectif est de lancer des commandes sur ces serveurs et de récuperer le resultat en local.

Merci

Répondre à Houston-12

3

Houston-12, le 12 jun 2009 à 14:13:04

Up

Répondre à Houston-12

4

 Houston-12, le 23 jun 2009 à 11:06:03

Bonjour,

Le problème a été contourné en utilisant plink et la commande system :
system ('plink -m commandes.txt root@$adresse_ip');

Cordialement

Répondre à Houston-12