Я ковырялся с этим, основываясь на коде другого человека. Нашел этот скрипт в интернете без указания авторства! Спасибо тому, кто написал оригинальный скрипт.
EDIT: – Оригинальный скрипт. Вы кладете файл с именем monitor.passwd в вашу директорию etc… /etc/monitor.passwd:
admin||blah01 затем создаете файл под названием txtfile.txt и помещаете в него что-нибудь… /somewhere/txtfile.txt:
/ip dhcp-server lease print затем запускаете скрипт, например, ssh-cmd 127.0.0.1 txtfile.txt, и он должен отправлять все команды из txtfile.txt на роутер! Я успешно использую этот скрипт, чтобы вытаскивать все записи статических IP-адресов из моей mysql-базы (их там около 30-40 штук) и загружать их в dhcp-сервер Mikrotik. Работает отлично!
#!/usr/bin/perl
# by Ian Redden © 2005
# Purpose: to get info off of a router for looking glass.
#
#-variables
use Expect;
$ssh = "/usr/bin/ssh";
$router = "$ARGV[0]";
$txtfile = "$ARGV[1]";
#-get username/password
open(PS,"/usr/local/mikrotik/monitor.passwd");
while (<PS>) {
chomp;
($usernm,$pass) = split(/\|\|/, $_);
}
close(PS);
$command = "$ssh -l $usernm $router";
#-connect to router.
$ssh = Expect->spawn("$command");
$ssh->log_stdout(1);
#-check to see if dsa authenticity question appears
if ($ssh->expect(2, "yes/no")) {
print $ssh "yes\r";
}
#-send password.
if ($ssh->expect(undef, "password:")) {
print $ssh "$pass\r";
}
#-send command.
open( FILE, "< $txtfile" ) or die;
if ($ssh->expect(undef, ">")) {
while ($cmd = <FILE>) {
print $ssh "$cmd\r";
$ssh->expect(undef, ">");
}
}
close FILE;
print $ssh "/quit\r";
EDIT: – Оригинальный скрипт. Вы кладете файл с именем monitor.passwd в вашу директорию etc… /etc/monitor.passwd:
admin||blah01 затем создаете файл под названием txtfile.txt и помещаете в него что-нибудь… /somewhere/txtfile.txt:
/ip dhcp-server lease print затем запускаете скрипт, например, ssh-cmd 127.0.0.1 txtfile.txt, и он должен отправлять все команды из txtfile.txt на роутер! Я успешно использую этот скрипт, чтобы вытаскивать все записи статических IP-адресов из моей mysql-базы (их там около 30-40 штук) и загружать их в dhcp-сервер Mikrotik. Работает отлично!
#!/usr/bin/perl
# by Ian Redden © 2005
# Purpose: to get info off of a router for looking glass.
#
#-variables
use Expect;
$ssh = "/usr/bin/ssh";
$router = "$ARGV[0]";
$txtfile = "$ARGV[1]";
#-get username/password
open(PS,"/usr/local/mikrotik/monitor.passwd");
while (<PS>) {
chomp;
($usernm,$pass) = split(/\|\|/, $_);
}
close(PS);
$command = "$ssh -l $usernm $router";
#-connect to router.
$ssh = Expect->spawn("$command");
$ssh->log_stdout(1);
#-check to see if dsa authenticity question appears
if ($ssh->expect(2, "yes/no")) {
print $ssh "yes\r";
}
#-send password.
if ($ssh->expect(undef, "password:")) {
print $ssh "$pass\r";
}
#-send command.
open( FILE, "< $txtfile" ) or die;
if ($ssh->expect(undef, ">")) {
while ($cmd = <FILE>) {
print $ssh "$cmd\r";
$ssh->expect(undef, ">");
}
}
close FILE;
print $ssh "/quit\r";
