Backup Cisco conf avec SNMP et SQL
Je cherchais depuis peu un moyen simple et efficace de sauvegarder mes configuration Cisco automatiquement. En cherchant un peu sur le net, j’ai trouvé que la solution la...
Filter by Category
Filter by Author
Je cherchais depuis peu un moyen simple et efficace de sauvegarder mes configuration Cisco automatiquement. En cherchant un peu sur le net, j’ai trouvé que la solution la...
Posted by louis MARTINBRANDA
Par défaut, ce n’est pas possible! Il faut l’activer via la console : Connectez vous sur la console puis faite alt+F1 Rentrez « unsupported » puis rentrer le MDP root.
Posted by louis MARTINBRANDA
Cette installation est décrite pour un serveur installé sous RedHat Linux. Les fichiers suivants sont requis : – SDK Java : jdk1.5.0_14-linux-i586x.bin Téléchargement sur...
Posted by louis MARTINBRANDA
Dans cet article je vais vous décrire la procédure pour vous loguer automatiquement en ssh sur votre serveur Linux via votre Mac ou votre Window$.
Posted by louis MARTINBRANDA
Pour installer sur votre Debian un serveur FTP, je vous conseille PROFTPD qui est très simple d’utilisation.
Posted by louis MARTINBRANDA
Address Resolution Protocol est celui qui est utilisé pour trouver l’adresse matérielle d’un dispositif (adresse MAC) en utilisant son adresse IP sur le réseau....
Posted by louis MARTINBRANDA
Liste des raccourcis clavier sous Mac Os X. Maj + Pomme + Q Ferme la session (Menu Pomme) Maj + Alt + Pomme + Q Ferme la session sans confirmation (Menu Pomme) Maj + Pomme + Suppr...
Posted by louis MARTINBRANDA
Lorsque l’on utilise un shell sous Linux, il arrive fréquemment de devoir réécrire un paramètre d’une commande précédente. Voici un exemple courant pour mieux comprendre :...
Posted by louis MARTINBRANDA
Pour afficher la date et l’heure dans l’history, modifier le fichier /etc/profile : export HISTTIMEFORMAT="%h/%d – %H:%M:%S "
Posted by louis MARTINBRANDA
C’est simple on tape la commande suivante find / -mtime -3 Cette commande affichera par exemple les fichiers modifiés dans les trois derniers jours.
Posted by louis MARTINBRANDA
Je cherchais depuis peu un moyen simple et efficace de sauvegarder mes configuration Cisco automatiquement.
En cherchant un peu sur le net, j’ai trouvé que la solution la plus simple était de passé par le module Cisco::CopyConfig de CPAN en PERL.
Pour l’installer il vous suffit de lancer la commande suivante :
perl -MCPAN -e 'install Cisco::CopyConfig'
Bien sur, il faut au préalable avoir installer PERL
Ensuite nous allons créé une nouvelle base nommée cisco_backup et une table equipement.
CREATE DATABASE `cisco_backup` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci;
USE `cisco_backup`;
CREATE TABLE `equipement` (
`id` bigint(128) NOT NULL auto_increment,
`description` varchar(128) collate utf8_bin NOT NULL,
`ip_address` varchar(128) collate utf8_bin NOT NULL,
`community` varchar(128) collate utf8_bin NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=19 ;
insert into equipement values('','routeur1','192.168.0.2','SNMPconfigCommunity1');
insert into equipement values('','switch1','192.168.0.4','SNMPconfigCommunity2');
Maintenant, nous avons besoin d’un serveur TFTP.
apt-get install atftp
Modifier le fichier de configuration (/etc/default/atftpd):
USE_INETD=true
OPTIONS="--tftpd-timeout 300 --retry-timeout 5 --maxthread 100 --verbose=5 /backup_cisco"
Le repertoire de sauvrgarde du TFTP sera /backup_cisco
Maintenant, pour que l’on puisse avoir accès aux équipements Cisco, il faut renseigner le nom du community en mode Read Write et aussi rajouter le fichier qui sera à lire.
snmp-server view backup ciscoMgmt.96.1.1.1.1 included
snmp-server community SNMPconfigCommunity view backup RW
Variables used in cisco backup script:/backup_switch – tftp root directory /storage/backup/daily/switches/ – backup directory Backup script:
Il faut créé un script cisco_backup.pl qu’on lancera via la crontab :
#!/usr/bin/perl
use DBI;
use Cisco::CopyConfig;
#Variable DATE
my ( $sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst)=localtime(time);
$year+=1900;
$mon = sprintf("%02d",$mon+1);
$mday = sprintf("%02d",$mday);
$hour = sprintf("%02d",$hour);
$min = sprintf("%02d",$min);
$sec = sprintf("%02d",$sec);
$date_format="$mday.$mon.$year";
# Variable Mail
$to='youremail@youtdomain.com';
$from= 'ciscobackup@yourdomain.com';
$sql="select ip_address,community,description from equipement order by inet_aton(ip_address) asc";
#$dbh = DBI->connect("dbi:mysql:cisco_backup:localhost","login","password") or die "Can't connect to MySQL: $DBI::errstrn";
$sth = $dbh->prepare($sql);
$sth->execute();
$tftp_address = '192.168.0.10'; #TFTP serveur IP
while (@row=$sth->fetchrow_array) {
$config = Cisco::CopyConfig->new(
Host => $row[0], # host
Comm => $row[1], # community
Tmout => '10', # timeout
Retry => '2' # retry
);
$tftp_file = "$row[2].conf";
if ($config->copy($tftp_address, $tftp_file) ) {
print "OK -> switch ip: $row[0], file: $tftp_filen";
open(MAIL, "|/usr/sbin/sendmail -t");
print MAIL "To: $ton";
print MAIL "From: $fromn";
print MAIL "Subject: [CISCO-BACKUP] OK $row[0]nn";
print MAIL "OK -> cisco ip: $row[0], file: $tftp_file";
close(MAIL);
}
else {
print "ERROR -> switch ip: $row[0], no backup filen";
open(MAIL, "|/usr/sbin/sendmail -t");
print MAIL "To: $ton";
print MAIL "From: $fromn";
print MAIL "Subject: [CISCO-BACKUP] ERROR $row[0]nn";
print MAIL "ERROR -> switch ip: $row[0], no backup filen";
close(MAIL);
}
}
Et voici le résultat
myserver# perl cisco_backup.pl
OK -> cisco ip: 192.168.0.2, file: router1.conf
OK -> cisco ip: 192.168.0.4, file: switch1.conf
Subscribe to our email newsletter to receive useful articles and special offers.
We won't share your email address.
Félicitation pour ce tuto. Cela fait plusieurs mois que je cherchais une solution de ce type, et celle-là fonctionne super bien.
Merci
Avec plaisir