- 论坛徽章:
- 1
|
一 将一台设备的结果保存下来的perl 命令
#!/usr/bin/perl
$pass = 'password';
$host = '192.168.0.1';
$user = 'admin';
use Net::Telnet::Cisco;
my $session =Net::Telnet::Cisco->new(Host => $host);
$session->login($user,$pass);
@out = $session->cmd("show mac-address-table");
open (ABC, ">> $host.txt") or die "$! error trying to telnet";
print ABC "$host\n";
print ABC "@out";
close (ABC);
二 将多台设备的结果保存下来的perl 命令
#!/usr/bin/perl
$pass = 'password';
my @ip =qw/192.168.0.1
192.168.0.2/;
$user = 'admin';
use Net::Telnet::Cisco;
for my $host(@ip)
{
my $session =Net::Telnet::Cisco->new(Host => $host);
$session->login($user,$pass);
@out = $session->cmd("show mac-address-table");
open (ABC, ">> $host.txt") or die "$! error trying to telnet";
print ABC "$host\n";
print ABC "@out";
close (ABC);
}
三 如何在WINDOWS下运行 此脚本
1 安装ActivePerl
2 运行 Perl Package Manager
3 安装 net-telnet 和 net-telnet-cisco 两个包
4 运行perl 命令 (C:\>perl test.pl)
四 如何在LINUX下运行 此脚本
1 安装三个包 Net-Telnet net-telnet-cisco TermReadKey
下载地址 http://www.debian.org/distrib/packages
2 安装步骤详见READEME
$ perl Makefile.PL [--prefix=...]
$ make
$ make test
$ make install
3 运行per脚本 (./test.pl)
五 常见错误
sh脚本异常:bad interpreter: No such file or directory
在Linux中执行.sh脚本,异常/bin/sh^M: bad interpreter: No such file or directory。
分析:这是不同系统编码格式引起的:在windows系统中编辑的.sh文件可能有不可见字符,所以在Linux系统下执行会报以上异常信息。
解决:1)在windows下转换:
利用一些编辑器如UltraEdit或EditPlus等工具先将脚本编码转换,再放到Linux中执行。转换方式如下(UltraEdit):File–>Conversions–>DOS->UNIX即可。
2)也可在Linux中转换:
首先要确保文件有可执行权限
#sh>chmod a+x filename
然后修改文件格式
#sh>vi filename
利用如下命令查看文件格式
:set ff 或 :set fileformat
可以看到如下信息
fileformat=dos 或 fileformat=unix
利用如下命令修改文件格式
:set ff=unix 或 :set fileformat=unix
:wq (存盘退出)
最后再执行文件
#sh>./filename |
|