`
Cash
  • 浏览: 180894 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

cisco 2950 ios 自动应答升级脚本(js)

阅读更多

由于要升级ios的交换机数目太多70多台(+_+)!,每条命令进行键盘输入简直会疯掉。所以做个个js脚本使用crt加载登陆脚本一气呵成,比较爽!

注意:**** 部分要替换成用户名,密码。

-------------------------------------------ios.js文件内容如下----------------------------------------------------------------------------

#$language = "JScript"
#$interface = "1.0"

//升级Cisco2950 IOS的JScript
//作者:张锋
//日期:2007-04-28
//版本:V0.1

//--------- 自定义函数---------------------------------------

//获取月份的英文缩写 (例如:clock set 13:00:00 28 apr 2007)
//参考:jan,feb,mar,apr,may,jun,jul,aug,sep,oct,nov,dec
//输入:{int类型[月份]}
//输出:{int类型}月份英文缩写
//日期:2007-04-28
//版本:v0.1 (helper class 1)
//作者:张锋
function getMonthEngShort(m){
 var engShort = null ;
 switch(m){
  case 1: engShort="jan"; break;
  case 2: engShort="feb"; break;
  case 3: engShort="mar"; break;
  case 4: engShort="apr"; break;
  case 5: engShort="may"; break;
  case 6: engShort="jun"; break;
  case 7: engShort="jul"; break;
  case 8: engShort="aug"; break;
  case 9: engShort="sep"; break;
  case 10: engShort="oct"; break;
  case 11: engShort="nov"; break;
  case 12: engShort="dec"; break;
 }
 return engShort;
}
//alert("测试 getMonthEngShort(4)="+getMonthEngShort(4));


//判断闰年函数
//参考:能被400整除,或者能被4整除而不能被100整除。
//输入:{int类型[年]}
//输出:{boolean类型}是否为闰年
//日期:2007-04-28
//版本:v0.1 (helper class 2)
//作者:张锋
function isLeapYear(y){
 var r = false;
      if(y%400==0 || (y%4==0 && y%100!=0 )){
  r = true;
   }
   return r;
}
//alert("测试 isLeapYear(2000)="+isLeapYear(2000));

//获取第二天函数
//参考:
//输入:{int类型[年],int类型[月],int类型[日]}
//输出:{Date类型}第二天的日期
//日期:2007-04-28
//版本:v0.1 (helper class 3)
//作者:张锋
function getNextDay(y,m,d){
 var nextY=0,nextM=0,nextD=0;
 //alert(y+"-"+m+"-"+d);
 switch(m){
  case 1 :
  case 3 :
  case 5 :
  case 7 :
  case 8 :
  case 10 :
  case 12 :
   if(d==31){
    nextD = 1 ;
    if(m==12){
     nextM = 1 ;
     nextY = y + 1 ;
    }else{
     nextM = m + 1 ;
     nextY = y ;
    }
   }else{
    nextD = d + 1 ;
    nextM = m ;
    nextY = y ;
   };
   //alert("case 1,3,5,7,8,10,12 :");
   break;
  case 4 :
  case 6 :
  case 9 :
  case 11 :
   if(d==30){
    nextD = 1 ;
    nextM = m + 1 ;
    nextY = y ;
   }else{
    nextD = d + 1 ;
    nextM = m ;
    nextY = y ;
   };
   //alert("case 4,6,9,11 :");
   break;
  case 2 :
   if( ( isLeapYear(y) && d==29 ) || ( !isLeapYear(y) && d==28 ) ){
    nextD = 1 ;
    nextM = 3 ;
    nextY = y ;
   }else{
    nextD = d + 1 ;
    nextM = m ;
    nextY = y ;
   };
   //alert("case 2");
   break;
 }

 //alert (nextY+"\n"+nextM+"\n"+nextD+"\n");
 return new Date(nextY,(nextM-1),nextD);
}
//测试getNextDay(y,m,d);
//function testGetNextDay(y,m,d){
// alert("测试 getNextDay("+y+","+m+","+d+")="+getNextDay(y,m,d).getYear()+"-"+(getNextDay(y,m,d).getMonth()+1)+"-"+getNextDay(y,m,d).getDate());
//}
//testGetNextDay(2007,4,28);
//testGetNextDay(2000,2,28);
//testGetNextDay(2000,2,29);
//testGetNextDay(2007,2,28);
//testGetNextDay(2007,2,29);
//testGetNextDay(2007,12,31);

//设置系统时间 (例如:clock set 13:00:00 28 apr 2007)
//参考:jan,feb,mar,apr,may,jun,jul,aug,sep,oct,nov,dec
//输入:{}
//输出:{string类型}设定cisco ios系统使用当前系统时间的命令串
//日期:2007-04-28
//版本:v0.1 (Called Class A)
//作者:张锋
function getClockStr(){
 var r = "" ;
 var nowDay = new Date();
 var nowMonthID = nowDay.getMonth() + 1;
 var engMonthShort = getMonthEngShort(nowMonthID);
 r = nowDay.getHours() + ":" + nowDay.getMinutes() + ":" + nowDay.getSeconds();
 r = r + " " + nowDay.getDate() + " " + engMonthShort + " " + nowDay.getYear();
 r = "clock set " + r;
    return r;
}
//alert("测试 getClockStr()="+getClockStr());

//设置重新启动时间为次日的t点(例如:reload at 4:00 28 apr)
//参考:jan,feb,mar,apr,may,jun,jul,aug,sep,oct,nov,dec
//输入:{string类型[次日时间XX:XX格式]}
//输出:{string类型}设定cisco ios系统次日重新启动的时间命令串
//日期:2007-04-28
//版本:v0.1 (Called Class B)
//作者:张锋
function getReloadDateStr(t){
 var r = "";
 var nowDay = new Date();
 var nextDate = null ;
 var nowDate = nowDay.getDate() ;
 var nowMonth = nowDay.getMonth() + 1;
 var nowYear = nowDay.getYear();
 var nextDay = getNextDay(nowYear,nowMonth,nowDate);
 r = "reload at " + t + " " + nextDay.getDate() + " " + getMonthEngShort((nextDay.getMonth()+1));
    return r;
}
//alert("测试 getReloadDateStr(4:00)="+getReloadDateStr("4:00"));


//------自定义函数结束-----------------------------


//-------实际运行。。。。。----------------------

//登陆交换机
 crt.Screen.WaitForString ("Username: ");
 crt.Screen.Send ("***********" + "\n"); 
 crt.Screen.WaitForString ("Password: ");
 crt.Screen.Send ("***********" + "\n");
 crt.Screen.WaitForString (">");
 crt.Screen.Send ("en" + "\n");
 crt.Screen.WaitForString ("Password: ");
 crt.Screen.Send ("***" + "\n");
//上传新版本IOS
 crt.Screen.WaitForString ("#");
 crt.Screen.Send ("archive tar /xtract tftp://10.61.8.230/c2950-i6k2l2q4-tar.121-22.EA9.tar flash:" + "\n");
//设置系统时间 clock set 13:00:00 28 apr 2007
 crt.Screen.WaitForString ("#");
 crt.Screen.Send (getClockStr() + "\n");
//设置重新启动时间
 crt.Screen.WaitForString ("#");
 crt.Screen.Send (getReloadDateStr("4:00") + "\n");
 crt.Screen.WaitForString ("Proceed with reload? [confirm]");
 crt.Screen.Send ("\n");
//设置IOS文件路径
 crt.Screen.WaitForString ("#");
 crt.Screen.Send ("config" + "\n");
 crt.Screen.WaitForString ("Configuring from terminal, memory, or network [terminal]? ");
 crt.Screen.Send ("\n");
//设置ios装载文件
 crt.Screen.WaitForString ("(config)#");
 crt.Screen.Send ("boot system flash:c2950-i6k2l2q4-mz.121-22.EA9.bin" + "\n");
//保存配置
 crt.Screen.WaitForString ("(config)#");
 crt.Screen.Send ("end" + "\n");
 crt.Screen.WaitForString ("#");
 crt.Screen.Send ("wr" + "\n");
//退出
 crt.Screen.WaitForString ("#");
 crt.Screen.Send ("exit" + "\n");

 

 

 
分享到:
评论

相关推荐

    cisco 2950 IOS

    标签"“cisco 2950 ios”"进一步强调了这个压缩包的内容与Cisco 2950系列交换机的软件相关,可能是IOS镜像文件、配置文件、升级工具或者是相关的文档。 由于压缩包的文件名称列表没有给出具体信息,我们无法详细...

    CISCO 交换机 IOS 升级步骤.docx

    3. CISCO2950 交换机 IOS 升级步骤:IOS 升级步骤包括前期准备、开始升级和升级完成三个阶段。在前期准备阶段,需要准备 Cisco2950 交换机、电脑、串口线、直连网线、TFTP 服务器软件和 IOS 升级文件。在开始升级...

    cisco 2950 ios

    cisco 2950 IOS下载, c2950-i6q4l2-mz.121-22.EA1.bin

    CISCO2950较新IOS映像:c2950-i6k2l2q4-mz.121-22.EA12

    2008年推出 CISCO2950较新IOS映像:c2950-i6k2l2q4-mz.121-22.EA12

    思科路由器升级IOS

    【思科路由器IOS升级】 思科路由器的IOS(Internetwork Operating System)是其核心操作系统,负责设备的网络功能。为了保持设备的安全性、性能和功能的更新,有时需要对路由器的IOS进行升级。升级过程相对复杂,...

    cisco 2950 ios c2950-i6k2l2q4-mz.121-22.EA13.bin

    cisco 2950 ios c2950-i6k2l2q4-mz.121-22.EA13.bin

    思科Catalyst2950-IOS文件

    思科Catalyst2950-IOS文件

    CISCO2811路由器IOS升级及配置

    ### CISCO2811路由器IOS升级及配置详解 #### 一、背景介绍 CISCO2811路由器是一款广泛应用于企业级网络环境中的设备,它具有强大的路由功能和丰富的扩展能力。本文主要针对漠大线讷河清管站使用的CISCO2811路由器在...

    2950 ios升级

    本文将详细介绍Cisco 2950交换机的IOS升级过程,这是网络管理员日常维护工作中的重要环节。Cisco 2950是一款固定配置的千兆以太网交换机,适用于中小企业和园区网络。其操作系统,即IOS(Internet Operating System...

    CISCO C2950-IOS

    【CISCO C2950-IOS】是Cisco公司的一款基于IOS(Internetwork Operating System)的交换机产品,主要用于提供企业级的局域网连接。Cisco Catalyst 2950系列是固定配置的以太网交换机,设计目标是为企业、小型分支...

    CISCO2950最新IOS映像:c2950-i6k2l2q4-mz.121-22.EA14

    2010年推出: CISCO2950最新IOS映像:c2950-i6k2l2q4-mz.121-22.EA14

    Cisco IOS升级6步轻松搞定

    《Cisco IOS升级六步详解:轻松提升网络性能》 Cisco IOS,全称为Cisco Internetwork Operating System,是Cisco网络设备的核心操作系统,负责管理网络设备的配置、路由选择、网络安全等功能。随着时间的推移,...

    思科2950交换机IOS备份与恢复

    ### 思科2950交换机IOS备份与恢复详解 #### 一、知识点概览 思科2950交换机作为企业级网络设备,其稳定性和安全性至关重要。当遭遇如IOS(Internetwork Operating System)丢失或损坏的情况时,进行及时有效的备份...

    Cisco IOS 下载地址大全

    在IT行业中,Cisco IOS(Internetwork Operating System)是思科网络设备的核心操作系统,它负责管理、配置和控制网络设备,如路由器、交换机等。这个操作系统对于理解和操作思科网络设备至关重要,因为它是设备功能...

    Cisco常用IOS文件·

    Cisco IOS文件的安装和升级需要遵循特定的步骤,包括但不限于使用TFTP服务器进行文件传输、进入路由器的ROMMON模式进行升级、验证MD5哈希值以确保文件完整等。此外,理解IOS的不同模式(如用户模式、特权模式、全局...

    cisco 交换机ios升级

    本文将详细介绍如何通过 X-Modem 协议来升级 Cisco 2950 系列交换机的 IOS 系统。 #### 一、准备工作 在开始升级之前,请确保以下准备工作已完成: 1. **备份当前配置**:在进行任何系统更改之前,始终备份当前...

    Cisco升级IOS失败后恢复IOS方法

    ### Cisco升级IOS失败后的恢复方法 在进行网络设备管理与维护的过程中,经常会遇到需要更新路由器或交换机操作系统的场景。Cisco设备通常使用的是IOS(Internetwork Operating System)系统,而当升级IOS过程中出现...

    思科 cisco ios 镜像 C3640-JK.BIN

    思科 cisco ios 镜像 C3640-JK.BIN 文件由多位CCIE水平人员测试使用后拷贝,dy下可用

    Cisco IOS升级方法

    ### Cisco IOS 升级方法详解 #### 一、Cisco IOS 概述 Cisco IOS(Internetwork Operating System)是思科网络设备(如路由器和交换机)的核心操作系统,它支持多种网络协议,包括但不限于IP(Internet Protocol)...

Global site tag (gtag.js) - Google Analytics