Резервное копирование и восстановление конфигурации на DSLAM ECI Hi-Focus

Сохранение конфигурации на FLASH

SANI-GE >? saveconf
SAVE CONFIGURATION TO FLASH
	SAVECONF 

SANI-GE >saveconf
 START SAVE TO FLASH 
...
SANI-GE >
 DBM: dbm_save_config_flash_files  finished O.K.

Сохранение конфигурации на FTP сервер

SANI-GE >? uplfile
UPLOAD CONFIGURATION FILE TO EXTERNAL SERVER
	UPLFILE <file type> <ip address> <user name> <user password> <file name> <path name>


SANI-GE >uplfile 1 192.168.11.254 user password dslam_config_filename.bin config

Восстановление конфигурации с FTP

SANI-GE >? dlfile
DOWNLOAD CONFIGURATION FILE FROM EXTERNAL SERVER
 	DLFILE <file type> <ip address> <user name> <user password> <file name> <path name>


SANI-GE >dlfile 1 192.168.11.254 user password dslam_config_filename.bin /config

Настройка источника загрузки

SANI-GE >? bootsrc
CHANGE SETUP SOURCE
	BOOTSRC <vpx - vpx; fls - flash; emp - empty> 


SANI-GE >bootsrc fls
SANI-GE >? ees
SAVE EEPROM
	EES  - save eeprom 


SANI-GE >eesInside terminal_eeprom_save

DBM : dbm_save_eeprom EEprom written: EEPRM crc = 0c59
CRC OK

SANI-GE >

Пример скрипта для резервного копирования

Хотя в ECI DSLAM есть способ настройки автоматического копирования конфигурации на ftp сервер, в некоторых случаях бывает удобнее воспользоваться внешним софтом. Для примера привожу следующий скрипт:

#!/usr/bin/perl
use strict;
use warnings;
use Net::Telnet;
 
my @ip=(
"192.168.11.10",
"192.168.11.11",
"192.168.11.12"
);
 
my $dir="/home/ftp/config";
my $dir1="/home/ftp";
my $backup_dir=`date +"%Y/%m/%d"`;
chomp($backup_dir);
$backup_dir="$dir1/$backup_dir";
 
opendir(D,$backup_dir) or `/bin/mkdir -p $backup_dir`;
closedir D;
 
for (my $i=0;$i<=$#ip;$i++){
        my $h=sprintf("%s",$ip[$i]);
 
        my $session = Net::Telnet->new(Host => $h);
	my $match;
	$session->open($h);
        $session->waitfor('/login :.*/');
        $session->print('admin');
        $session->waitfor('/password :.*/');
        $session->print('PaSSw0Rd');
	$session->print('');
        (undef, $match) = $session->waitfor('/(ESNI >|SANI-GE >)/');
	if ($match=~ /^ESNI >/) {
		$session->print('logout');
	}
 
        my @output = $session->print('uplfile 1 192.168.11.254 ftpuser ftppass '.$h.'.bin config');
	my @output2 = $session->waitfor(String =>'DBM: dbm_upload_config_file finished OK', Timeout =>30);
        my @output3 = $session->print('logout');
        $session->close;
 
        `/bin/sleep 3`;
        system(sprintf("/bin/mv %s/%s %s/", $dir, $h.'.bin', $backup_dir));
        system(sprintf("/bin/gzip %s/%s", $backup_dir,$h.'.bin'));
}