[PERL] Telnet sur liste de serveur
phoenix1984
Messages postés
30
Date d'inscription
Statut
Membre
Dernière intervention
-
gigaga Messages postés 2347 Date d'inscription Statut Membre Dernière intervention -
gigaga Messages postés 2347 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous ,
voici mon problème.
Je dois me connecter à un ensemble de serveur en telnet pour y passer des commandes.
J'ai déjà fait un script fonctionnel, mais je n'arrive actuellement pas à lire un fichier contenant la liste des serveurs auquels se connecter ...
Voici ce que je voudrais obtenir ...
#!/usr/bin/perl -i.orig
use lib "../sources";
use Telnet;
use Shell qw(cat);
my @host_array=cat("liste.serveurs.txt");
my $host_rsa=@host_array;
foreach $host_rsa (@host_array)
{
$session = new Net::Telnet (Prompt => '/.*\#/');
$session->open([$host_rsa]);
$session->login('USERID', 'PASSW0RD');
open(monFile,">>result.users.txt");
my @output = $session->cmd('users');
print monFile"$host_rsa\n";
print monFile"@output\n";
close(monFile);
}
$i++;
Voici ce qui fonctionne, mais avec UNE adresse IP en dur dans le code ...
#!/usr/bin/perl -i.orig
#use strict; use warnings;
use lib "../sources";
use Telnet;
use Ping;
use Shell qw(cat);
my @host_array=cat("liste.serveurs.txt");
my $host_rsa=@host_array;
$p=Net::Ping->new();
$p->close();
$stat=true;
$i=0;
$host_rsa =~s/\n//;
foreach $host_rsa (@host_array) #pour chaque host de @host_array
{
$session = new Net::Telnet (Prompt => '/.*\#/');
$session->open('192.168.0.64');
$session->login('USERID', 'PASSW0RD');
if ($p->ping($host_rsa)) #si test ping OK
{
open(monFile,">>result.users.txt");
my @output = $session->cmd('users');
print monFile"*****$host_rsa\n";
print monFile"@output\n";
close(monFile);
}
else
{
print "Serveur injoignable\n";
}
}
$i++;
dans les 2 cas pour le moment le contenu du fichier "liste.serveurs.txt" est juste une IP ... => 192.168.0.64
ca doit être tout bête mais je ne trouve pas ..
d'avance merci pour votre aide :)
voici mon problème.
Je dois me connecter à un ensemble de serveur en telnet pour y passer des commandes.
J'ai déjà fait un script fonctionnel, mais je n'arrive actuellement pas à lire un fichier contenant la liste des serveurs auquels se connecter ...
Voici ce que je voudrais obtenir ...
#!/usr/bin/perl -i.orig
use lib "../sources";
use Telnet;
use Shell qw(cat);
my @host_array=cat("liste.serveurs.txt");
my $host_rsa=@host_array;
foreach $host_rsa (@host_array)
{
$session = new Net::Telnet (Prompt => '/.*\#/');
$session->open([$host_rsa]);
$session->login('USERID', 'PASSW0RD');
open(monFile,">>result.users.txt");
my @output = $session->cmd('users');
print monFile"$host_rsa\n";
print monFile"@output\n";
close(monFile);
}
$i++;
Voici ce qui fonctionne, mais avec UNE adresse IP en dur dans le code ...
#!/usr/bin/perl -i.orig
#use strict; use warnings;
use lib "../sources";
use Telnet;
use Ping;
use Shell qw(cat);
my @host_array=cat("liste.serveurs.txt");
my $host_rsa=@host_array;
$p=Net::Ping->new();
$p->close();
$stat=true;
$i=0;
$host_rsa =~s/\n//;
foreach $host_rsa (@host_array) #pour chaque host de @host_array
{
$session = new Net::Telnet (Prompt => '/.*\#/');
$session->open('192.168.0.64');
$session->login('USERID', 'PASSW0RD');
if ($p->ping($host_rsa)) #si test ping OK
{
open(monFile,">>result.users.txt");
my @output = $session->cmd('users');
print monFile"*****$host_rsa\n";
print monFile"@output\n";
close(monFile);
}
else
{
print "Serveur injoignable\n";
}
}
$i++;
dans les 2 cas pour le moment le contenu du fichier "liste.serveurs.txt" est juste une IP ... => 192.168.0.64
ca doit être tout bête mais je ne trouve pas ..
d'avance merci pour votre aide :)
A voir également:
- [PERL] Telnet sur liste de serveur
- Liste déroulante excel - Guide
- Changer serveur dns - Guide
- Liste déroulante en cascade - Guide
- Liste code ascii - Guide
- Serveur de reception mail - Guide
1 réponse
Essaie ça :
#!/usr/bin/perl -i.orig use lib "../sources"; use Telnet; open (FILE, "liste.serveurs.txt"); my @host_array=<FILE>; close(FILE); foreach my $host_rsa (@host_array) { $session = new Net::Telnet (Prompt => '/.*\#/'); $session->open($host_rsa); $session->login('USERID', 'PASSW0RD'); open(monFile,">>result.users.txt"); my @output = $session->cmd('users'); print monFile "$host_rsa\n"; print monFile "@output\n"; close(monFile); } $i++;