Rechercher : dans
Par :

Perl,mysql,telnet..?

Dernière réponse le 9 jui 2009 à 13:47:33 potiok, le 26 jun 2009 à 15:45:49 
 Signaler ce message aux modérateurs

Bonjour,
j'ai fait un script en Perl pour récupérer mes config switch et routeurs, il fonctionne sur un switch et je voudrais l'étendre à tous. J'ai fait une db avec mysql contenant les adresses ip, les noms, mots de passe... et là je bloque: comment une fois connecté au telnet, je peux consulter ma db?
J'ai essayé pas aml de choses sans résultat, si quelqu'un avait une idée, ça serait tip top :)
mici

ici, c'est la cour des miracles lol

Configuration: Windows XP Internet Explorer 6.0

Meilleures réponses pour « perl,mysql,telnet..? » dans :
Activer Telnet sous Vista VoirPar défaut, la commande telnet de Windows Vista a été désactivée pour des raisons de sécurité. Néanmoins, il est possible de la réactiver très facilement. Pour la réactiver, il suffit de suivre la procédure suivante : Ouvrir le Panneau de...
Installation rapide de LAMP (Apache+MySql+php) sous Linux VoirLAMP = Linux+Apache+MySql+Php. C'est le serveur web par excellence. L'ensemble est facile à installer. Installation rapide sudo aptitude install apache2 php5 mysql-server php5-mysql libapache2-mod-php5 Le mot de passe administrateur mySQL...
Réinitialiser le mot de passe root de MySQL VoirQue ce soit lors de la première installation ou après la perte du mot de passe principal de MySQL, il est nécessaire de pouvoir modifier le mot de passe administrateur (root) de MySQL. Vous avez perdu le mot de passe root de MySQL ? Pour pouvoir...
Importer et exporter des données sous MySQL VoirImportation et exportation Les Système de Gestion de Bases de Données tels que MySQL permettent de manipuler facilement et avec beaucoup de souplesse un très important volume de données. Toutefois, aussi robuste soit MySQL, il peut être intéressant...
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...
Perl - Les fichiers VoirLa notion de filehandle On appelle filehandle (traduisez descripteur de fichier), dans un programme Perl, le nom permettant de manipuler une connexion d'entrée-sortie (les entrées-sorties standards vues précédemment sont connues par les filehandles...

1

potiok, le 2 jui 2009 à 20:26:19

Personne n'a meme une vague idée? :( ici, c'est la cour des miracles lol

Répondre à potiok

2

lami20j, le 2 jui 2009 à 22:34:14

Salut,

Voici un exemple en local

1. La base mysql

lami20j@debian:~/trash/ccm_perl$ mysql -u root -p'azertyuiop' Personne
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 46
Server version: 5.0.51a-24+lenny1 (Debian)

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> show tables;
+--------------------+
| Tables_in_Personne |
+--------------------+
| Utilisateur        |
+--------------------+
1 row in set (0.00 sec)

mysql> desc Utilisateur;
+--------+----------+------+-----+---------+-------+
| Field  | Type     | Null | Key | Default | Extra |
+--------+----------+------+-----+---------+-------+
| nom    | char(50) | YES  |     | NULL    |       |
| prenom | char(50) | YES  |     | NULL    |       |
| age    | int(11)  | YES  |     | NULL    |       |
+--------+----------+------+-----+---------+-------+
3 rows in set (0.00 sec)

mysql> select * from Utilisateur;
+--------+--------+------+
| nom    | prenom | age  |
+--------+--------+------+
| azerty | aaa    |   10 |
| qwerty | bbb    |   20 |
+--------+--------+------+
2 rows in set (0.00 sec)

mysql> exit
Bye
2. Le script + résultat
lami20j@debian:~/trash/ccm_perl$ cat dbi_view.pl
#! /usr/bin/perl

use DBI;
use strict;use warnings;

my $mysql_sock='/var/run/mysqld/mysqld.sock';
my $base = 'Personne';
my $host = 'localhost';
my $user = 'root';
my $pass = 'azertyuiop';

# connexion base de données
my $db_=DBI->connect("DBI:mysql:database=$base;host=$host;mysql_socket=$mysql_sock",$user,$pass);

# lire la table (préparation de la requête SELECT)
my $query=$db_->prepare("SELECT nom, prenom, age FROM Utilisateur");

# exécution de la requête
$query->execute();

# affiche les résultats
while (my ($nom, $prenom, $age)=$query->fetchrow_array){
        print "$nom\t$prenom\t$age\n";
}
__END__
lami20j@debian:~/trash/ccm_perl$ perl dbi_view.pl
azerty  aaa     10
qwerty  bbb     20
106485010510997108

Répondre à lami20j

3

 potiok, le 9 jui 2009 à 13:47:33

Salut,
merci d'avoir répondu :)
en fait sur ton script, on a la connexion avec mysql, ça je gère lol
voilà mon script:


#!/usr/bin/perl -w

use Net::Telnet;

my $router = "xx.xx.xx.xx";
my $user = "moi";
my $pass = "mon_pass";
my $enable = "mon_enable_pass";
my $tftp_server = "xx.xx.xx.xx";
my $t = new Net::Telnet(Timeout => 10);

$t->open( $router );

$t->print( "$pass" );
sleep 2;
$t->print( "enable" );
$t->waitfor( '/Password:/' );
$t->print( "$enable" );
sleep 2;
$t->print( "copy startup-config tftp" );
sleep 2;
$t->print( "$tftp_server" );
sleep 2;
$t->print( "save.txt" );

et ce que je souhaiterais c'est que toutes mes variables user,pass... il aille les chercher directement dans ma db mysql

Après, peut-être qu'il y a un moyen plus simple..mais avec plus de 200 routeurs et switch, je ne me vois pas taper un script pour chaque conf :s

j'ai vu aussi que Perl avait un module spécial pour les cisco, mais évidemment je n'ai pas que des cisco, ça serait trop simple lol
ici, c'est la cour des miracles lol

Répondre à potiok