




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、usearis;useIO:Socket;&dispatchCmds();#=#以下四个函数分别是命令集合,结果分析,输入参数,输出参数,需要定制#=#命令集合subdispatchCmds# 该参数必须选定my$script_type=0;#脚本类型,0 为执行命令的脚本,1 为局数据备份脚本# 执行命令脚本请填写以下参数my$pattern1=-More-;#分页显示的提示符my$pattern2=$#?$;#命令执行的提示符my$timeout=10;#超时等待时间my$cmdName=vmstat15;#待发送的命令数组# 局数据备份脚本请填写以下参数my$backup_typ
2、e=ciscoCommand;&perlTemplate(ScriptType=$script_type,Pattern1=$pattern1,Pattern2=$pattern2,Timeout=$timeout,CmdName=$cmdName,BackupType=$backup_type);# 输入参数subinputArgvFilemy$fileName=substr($0,length($path).in;myinputArgv;push(inputArgv,中文释义ttt 参数名称t 参数类型t 有效值范围n);是否测试标志位tttTest_Flagt 布尔类型t(fal
3、se 为不测是否监视tttMonitor_Flagt 布尔类型t(false 为不监视,消息服务器 ip 地址ttaddresstt 字符串类型t 有效的 IP 地址n);push(inputArgv,消息服务器使用 socket 通信端口tporttt 整数tt 有效的端口值n);push(inputArgv,客户端标识 IDtttClient_IDt 字符串tt 符合格式要求的push(inputArgv,试,true 为测试)n);push(inputArgv,true 为监视)n);push(inputArgv,客户端 IDn);push(inputArgv,要访问白设备 IP 地址t
4、tDevice_IPt 字符串类型t 有效的IP 地址n);push(inputArgv,登录 SASS(NSS 旅统的用户名称tSASS_Usernamet 字符串tt 可用的用户名n);push(inputArgv,登录SASS(NSS旅统的用户口令tSASS_Passwordt字符串tt与用户名匹配的用户密码n);open(FILE,$path.$fileName);printFILEinputArgv;close(FILE);printinputArgv;# 输出参数suboutputArgvFilemy$fileName=substr($0,length($path).out;myo
5、utputArgv;push(outputArgv,cpu 利用率=int,%,cpu 利用率);open(FILE,$path.$fileName);printFILEoutputArgv;close(FILE);printoutputArgv;# 模版,一般不需要修改subperlTemplateprintenterinperln;# 获取脚本文件所在的路径,在该路径下存储输入参数格式文件 inputArgv.txt 和输出参数格式文件 outputArgv.txtmy$path=&getScriptPath($0);# 获取执行方式信息my$Mode_Type=&getM
6、odeType($ARGV0);# 判断执行方式if($Mode_Typeeq0)# 执行脚本正文部分# 获取输入参数文件路径, 原始结果文件和结果分析文件所需存取路径与输入参数文件路径相同my$ResultPath=&getInputArgvPath($ARGV0);# 将输入参数文件中所列参数存入一个 hashtabel 变量my%argv=&inputArgv($ARGV0);# 判断脚本是否测试my$Test_Flag=$argvTest_Flag;# 根据输入的参数地址信息与端口,与消息服务器建立连接my$sock=&connect2msgserver($ar
7、gvaddress,$argvport);# 定义消息传送方式,并发送请求消息头my$source=0;#perl 脚本传入,不可更改&sendRequest($sock,$source,$argvbroadcast,$argvClient_ID);# 接收从接收端传回的信息,确定是否继续传送以下的消息# 若接 U到true则继续传送信息,若为false,则不再传输信息给 socketmy$response=;# 对返回的信息进行处理,获得返回的字符串trueorfalsemy$isContinue=&getResponse($response);printtherespons
8、eis$isContinuen;if($isContinueeqtrue)# 返回结果为 true 的话,执行 telnet 设备的操作# 定义保存访问设备时产生的异常消息my$msg;# 保存命令返回的结果,也是发送到消息服务器的结果my$cmd1;# 登陆设备# 0 为标准连接# 1 登陆 cisco 设备的普通模式,需要用户名密码# 2 登陆 cisco 设备的 enable 模式,需要用户名,密码及 enable 密码# 3 登陆 cisco 设备的普通模式,不需用户名,只需要密码# 4 登陆 cisco 设备的 enable 模式,不需用户名,需要密码及 enable 密码my$t=
9、&connectToDevice(%argv);$msg=$t-errmsg;# 获取传入的参数my($dispatchArgv)=_;my$script_type=$dispatchArgv-ScriptType;if($msgeq)if($script_type=0)my($pattern1,$pattern2,$timeout,cmdName)=($dispatchArgv-Pattern1,$dispatchArgv-Pattern2,$dispatchArgv-Timeout,$dispatchArgv-CmdName);($t,cmd1)=&sendCmd($t,$
10、pattern1,$pattern2,$timeout,cmdName);elsif($script_type=1)my$backup_type=$dispatchArgv-BackupType;($t,cmd1)=&doBackup($t,$ResultPath,&getCurrentTimeStr(),$argvHostName,$path.bucs_input.xml,$backup_type);else$t-error(输入错误的脚本类型,请检查后重新输入!.n);$msg=$t-errmsg;print错误信息为;print$msg;printn;if($msgeq)
11、#若无任何错误消息返回,则成功$argvRunning_Status=2;else#若有错误消息返回,则失败$argvRunning_Status=3;cmd1=($msg);#将所有的命令用;,分割并放在原始结果的第一行cmd1=(join(;,cmdName),n,cmd1);# 断开与 sass 系统的联系$t=&disconnectFromSass($t);# 将返回数组组合称为一个大的字符串,以便于一次性传递$cmd1=&array2string(cmd1);printcmd1;# Running_Status=0/1 代表失败/成功# 结果正确性判断$isResul
12、tRight=&judgeResult(cmd1);# 日志记录,记录命令执行结果的状态&cmdResultLog($cmdName,$isResultRight);if($isResultRighteq0)#命令执行结果错误&sendMsg($sock,$cmd1,%argv);elsif($isResultRighteq1)#命令执行结果正确 if($Test_Flageqtrue)#测试脚本&sendMsg($sock,$cmd1,%argv);elsif($Test_Flageqfalse)#正常运行脚本,非测试#保存执行结果,保存至数据库或保存至文件&
13、amp;save2db();#将结果保存至与输入参数文件相同的目录&save2file($ResultPath.orig.txt,cmd1);#结果分析resultAnalyse=&resultAnalyse($ResultPath);#分析结果保存&saveAnalyseResult($ResultPath.parsed.txt,resultAnalyse);&ftpUpload($ResultPath);&sendMsg($sock,$cmd1,%argv);#关闭与设备的连接close$t;else#返回结果为 falseprint返回结果为 fa
14、lsen;# 关闭与消息服务器的连接close$sock;elsif($Mode_Typeeq1)# 运行输入参数部分,产生输入参数文件printDisplaytheinputargvfile!n;&inputArgvFile();elsif($Mode_Typeeq2)# 运行输出参数部分,产生输出参数文件printDisplaytheoutputargvfile!n;&outputArgvFile();#任务执行结果分析,返回任务分析的结果subresultAnalyseprintanalysetheexecutedcmdsresultandreturntheanalyseresultn;my(result)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025湖南岳阳鼎盛建设投资开发有限公司招聘拟聘用人员模拟试卷及参考答案详解一套
- 2025年西安明珠电力安装工程有限公司招聘(2人)模拟试卷有答案详解
- 2025贵州省社会科学院高层次人才引进4人考前自测高频考点模拟试题及答案详解(新)
- 2025北京顺义区教委所属事业单位第二次招聘教师131人模拟试卷附答案详解(完整版)
- 2025年华中师范大学黎安滨海学校招聘16名教师模拟试卷及1套完整答案详解
- 2025年大兴安岭漠河市漠河林场公开招聘森林管护员30人考前自测高频考点模拟试题及完整答案详解
- 2025年度崇明区村居事务工作者校园招录8人考前自测高频考点模拟试题及答案详解(典优)
- 2025安徽蚌埠市固镇县新马桥镇选聘村级后备人才4人模拟试卷及参考答案详解1套
- 2025年绍兴新昌县卫健系统第一次公开招聘编外人员6人模拟试卷及答案详解参考
- 2025金沙县城乡建设发展集团有限公司模拟试卷及答案详解(考点梳理)
- 物业服务纠纷上诉状
- 2024-2025学年河南省青桐鸣高一上学期10月联考英语试题及答案
- GB/T 18724-2024印刷技术印刷品与印刷油墨耐各种试剂性的测定
- 现代大学教学理念与方法
- 九年级英语上学期第一次月考(广东卷)-2024-2025学年九年级英语上册模块重难点易错题精练(外研版)
- HG+20231-2014化学工业建设项目试车规范
- 冷水滩区2021上半年事业单位计算机岗位专业知识试题
- 马克思政治经济学考试题库含答案全套
- 渤中19-6凝析气田试验区开发项目(第二阶段)环评报告
- 微电网及储能技术
- 变压器主保护基本知识测试题
评论
0/150
提交评论