CiscoWorks Network Compliance Manager ユーザ ガイド 1.2
付録 C: サンプル スクリプト
付録 C:サンプル スクリプト
発行日;2012/02/04 | ドキュメントご利用ガイド | ダウンロード ; この章pdf , ドキュメント全体pdf (PDF - 3MB) | フィードバック

付録 C:サンプル スクリプト

この付録では、サンプル スクリプトを示します。

PERL のサンプル スクリプト #1

この PERL スクリプトは、Cisco 2600 および 7200 のすべての FastEthernet インターフェイスを全二重に設定します。

 

#
# Sample Script to set all FastEthernet interfaces
# to full duplex on Cisco 2600s and 7200s
#
use Socket;

$iaddr = gethostbyname("$tc_device_ip$");
$telnet_port = 23;
$sin = sockaddr_in($telnet_port, $iaddr);
socket(DEV, PF_INET, SOCK_STREAM, getprotobyname('tcp'));
connect(DEV, $sin) || die "Can't connect to $tc_device_hostname$: $!\n";

sendln("");
sendln("$tc_device_password$");
sendln("en");
sendln("$tc_device_enable_password$");
sendln("conf t");

for $name (split(" ","$tc_device_port_name_list$")) {
if ($name =~ /FastEthernet/)
sendln("interface $name");
sendln("duplex full");
sendln("exit");
}
}
sendln("exit");
sendln("exit");
sendln("");
close(DEV);
exit;

(次のページに続く)

sub sendln {
my ($line) = @_;
$line .= "\n";
syswrite(DEV,$line,length($line));
while (<DEV>) {
print;
die "Failed to execute command\n"
if (/\% (Unknown|Unrecognized|Invalid|.*uthorization failed)/);
last if (/name:/ ||
/word:/ ||
/>/ ||
/\#/);
}
}

PERL のサンプル スクリプト #2

この PERL スクリプトは、すべてのインターフェイスを IP ダイレクト ブロードキャストなしに設定します。

 

#
# Sample Script to set all interfaces
# to no ip directed broadcast
#
use Socket;

$iaddr = gethostbyname("$tc_device_ip$");
$telnet_port = 23;
$sin = sockaddr_in($telnet_port, $iaddr);
socket(DEV, PF_INET, SOCK_STREAM, getprotobyname('tcp'));
connect(DEV, $sin) || die "Can't connect to $tc_device_hostname$: $!\n";

sendln("");
sendln("$tc_device_password$");
sendln("en");
sendln("$tc_device_enable_password$");
sendln("conf t");

for $name (split(" ","$tc_device_port_name_list$")) {
sendln("interface $name");
sendln("no ip directed-broadcast");
sendln("exit");
}
sendln("exit");
sendln("exit");
sendln("");
close(DEV);
exit;

sub sendln {
my ($line) = @_;
$line .= "\n";
syswrite(DEV,$line,length($line));
while (<DEV>) {
print;
die "Failed to execute command\n"
if (/\% (Unknown|Unrecognized|Invalid|.*uthorization failed)/);
last if (/name:/ ||
/word:/ ||
/>/ ||
/\#/);

Expect のサンプル スクリプト

この Expect スクリプトは、所定の文字列がバナーにまだ組み込まれていない場合に限り、バナーを修正してその文字列を組み込みます。

 

 

#
# Sample Script to set the banner only if
# it is not already set correctly
#
spawn telnet $tc_device_ip$
set banner "****Unauthorized Access Prohibited****"
expect {
$banner {
puts "\nBanner is already set correctly\n"
exit 0
} "word:"
}
send "$tc_device_password$\r"
expect ">"
send "en\r"
expect "word:"
send "$tc_device_enable_password$\r"
expect "\#"
send "config t\r"
expect "\#"
send "banner motd /$banner/\r"
expect "\#"
send "exit"