今天在配置一个蛇形VLAN时,通过SecureCRT连接到交换机(MyPower 3200)上,需要配置几十个VLAN,步骤比较繁琐,因此学习了SecureCRT下简单的JS脚本。
以下图为例:
进入enable模式后,加载执行该脚本,则会依次创建VLAN(减少手工配置的繁琐性、耗时性与易错性等问题,此外该JS脚本可根据需求作以调整,实现配置管理自动化运维):
# $language = "JScript"
# $interface = "1.0"
var CTab;
var vid; /* VLAN id */
var port; /* switch port */
function main()
{
/* 配置“蛇形VLAN” */
vlanCfg();
/* 保存配置 */
CTab.Screen.send("write\n");
/* 等待保存信息提示 */
CTab.Screen.waitforstring("(Yes|No)?\n");
/* 保存 */
CTab.Screen.send("Yes\r");
/* show配置好的vlan */
CTab.Screen.send("show vlan\n");
}
function vlanCfg()
{
/* 获取tab1,即当前窗口 */
CTab = crt.GetTab(1);
CTab.Screen.send("configure terminal\n");
/* port每次自加2,port自加两次同时vid自加一次,自加值也是2 */
for(vid = 10, port = 2; port < 48; port += 2, vid += 2)
{
/* 将两个端口划到同一个VLAN */
swPortAccessVlan(vid, port);
port += 2;
swPortAccessVlan(vid, port);
}
/* 同上,下层端口VLAN划分 */
for(vid = 11, port = 3; port < 45; port += 2, vid += 2)
{
/* 将两个端口划到同一个VLAN */
swPortAccessVlan(vid, port);
port += 2;
swPortAccessVlan(vid, port);
}
/* 特殊的两个端口VLAN划分,vid = 33 */
vid = 33;
port = 47;
swPortAccessVlan(vid, port);
port = 1;
swPortAccessVlan(vid, port);
}
function swPortAccessVlan(vid, port)
{
/* Access to g0/port configure */
CTab.Screen.send("interface gigabitethernet 0/" + port + "\n");
/* G0/port belongs to VLAN ID equal to vid VLAN. */
CTab.Screen.send("switchport access " + vid + "\n");
/* Exit g0/port configure */
CTab.Screen.send("exit\n");
}