aix43cpu利用率采集_第1页
aix43cpu利用率采集_第2页
aix43cpu利用率采集_第3页
aix43cpu利用率采集_第4页
aix43cpu利用率采集_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、usearis;useIO:Socket;&dispatchCmds();#=#以下四个函数分别是命令集合,结果分析,输入参数,输出参数,需要定制#=#命令集合subdispatchCmds#该参数必须选定my$script_type=0;#脚本类型,0为执行命令的脚本,1为局数据备份脚本#执行命令脚本请填写以下参数my$pattern1='More'#分页显示的提示符my$pattern2='$#>?$'#命令执行的提示符my$timeout=10;#超时等待时间my$cmdName='vmstat15'#待发送的命令数组#局数据

2、备份脚本请填写以下参数my$backup_type='ciscoCommand'&perlTemplate(ScriptType=>$script_type,Pattern1=>$pattern1,Pattern2=>$pattern2,Timeout=>$timeout,CmdName=>$cmdName,BackupType=>$backup_type);#输入参数subinputArgvFilemyinputArgv;push(inputArgv,"push(inputArgv,"试,true为测试)n&qu

3、ot;);push(inputArgv,"true为监视)n");push(inputArgv,"my$fileName=substr($0,length($path).'.in'中文释义ttt参数名称t参数类型t有效值范围n");是否测试标志位tttTest_Flagt布尔类型t(false为不测是否监视tttMonitor_Flagt布尔类型t(false为不监视,消息服务器ip地址ttaddresstt字符串类型t有效的IP地址n");push(inputArgv,"端口值n");push(inputA

4、rgv,"消息服务器使用socket通信端口tporttt客户端标识IDtttClient_IDt字符串tt整数tt有效的符合格式要求的客户端IDn");push(inputArgv,"要访问的设备IP地址ttDevice_IPt字符串类型t有效的IP地址n");push(inputArgv,"登录SASS(NSS系统的用户名称tSASS_Usernamet字符串tt可用的用户名n");push(inputArgv,"登录SASS(NSS系统的用户口令tSASS_Passwordt字符串tt与用户名匹配的用户密码n"

5、;);open(FILE,">$path".$fileName);printFILEinputArgv;close(FILE);printinputArgv;#输出参数suboutputArgvFilemy$fileName=substr($0,length($path).'.out'myoutputArgv;push(outputArgv,'cpu利用率=int,%,cpu利用率');open(FILE,">$path".$fileName);printFILEoutputArgv;close(FILE);p

6、rintoutputArgv;#模版,一般不需要修改subperlTemplateprint"enterinperln"#获取脚本文件所在的路径,在该路径下存储输入参数格式文件inputArgv.txt和输出参数格式文件outputArgv.txtmy$path=&getScriptPath($0);#获取执行方式信息my$Mode_Type=&getModeType($ARGV0);#判断执行方式if($Mode_Typeeq"0")#执行脚本正文部分#获取输入参数文件路径,原始结果文件和结果分析文件所需存取路径与输入参数文件路径相同m

7、y$ResultPath=&getInputArgvPath($ARGV0);#将输入参数文件中所列参数存入一个hashtabel变量my%argv=&inputArgv($ARGV0);#判断脚本是否测试my$Test_Flag=$argv"Test_Flag"#根据输入的参数地址信息与端口,与消息服务器建立连接my$sock=&connect2msgserver($argv"address",$argv"port");#定义消息传送方式,并发送请求消息头my$source="0"#per

8、l脚本传入,不可更改&sendRequest($sock,$source,$argv"broadcast",$argv"Client_ID");#接收从接收端传回的信息,确定是否继续传送以下的消息#若接收到"true"则继续传送信息,若为"false",则不再传输信息给my$response=<$sock>#对返回的信息进行处理,获得返回的字符串"true"or"false"my$isContinue=&getResponse($response)

9、;print"theresponseis$isContinuen"if($isContinueeq'true')#返回结果为true的话,执行telnet设备的操作#定义保存访问设备时产生的异常消息my$msg;#保存命令返回的结果,也是发送到消息服务器的结果my$cmd1;#登陆设备#0为标准连接#1登陆cisco设备的普通模式,需要用户名密码#2登陆cisco设备的enable模式,需要用户名,密码及enable密码#3登陆cisco设备的普通模式,不需用户名,只需要密码#4登陆cisco设备的enable模式,不需用户名,需要密码及enablemy$t

10、=&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",$dispatchAr

11、gv->"Timeout",$dispatchArgv->"CmdName");($t,cmd1)=&sendCmd($t,$pattern1,$pattern2,$timeout,cmdName);elsif($script_type=1)my$backup_type=$dispatchArgv->"BackupType"socket密码($t,cmd1)=&doBackup($t,$ResultPath,&getCurrentTimeStr(),$argv"HostName&qu

12、ot;,$path.'bucs_input.xml',$backup_type);else!'."n");$t->error('输入错误的脚本类型,请检查后重新输入$msg=$t->errmsg;print"错误信息为"print$msg;print"n"if($msgeq'')#若无任何错误消息返回,则成功$argv"Running_Status"=2;else#若有错误消息返回,则失败$argv"Running_Status"=3;

13、cmd1=($msg);#将所有的命令用''分割并放在原始结果的第一行cmd1=(join('',cmdName),"n",cmd1);#断开与sass系统的联系$t=&disconnectFromSass($t);#将返回数组组合称为一个大的字符串,以便于一次性传递$cmd1=&array2string(cmd1);printcmd1;#Running_Status=0/1代表失败/成功#结果正确性判断$isResultRight=&judgeResult(cmd1);#日志记录,记录命令执行结果的状态&cm

14、dResultLog($cmdName,$isResultRight);if($isResultRighteq"0")#命令执行结果错误&sendMsg($sock,$cmd1,%argv);elsif($isResultRighteq"1")#命令执行结果正确if($Test_Flageq"true")#测试脚本&sendMsg($sock,$cmd1,%argv);elsif($Test_Flageq"false")#正常运行脚本,非测试#保存执行结果,保存至数据库或保存至文件&save

15、2db();#将结果保存至与输入参数文件相同的目录&save2file("$ResultPath"."orig.txt",cmd1);#结果分析resultAnalyse=&resultAnalyse($ResultPath);#分析结果保存&saveAnalyseResult("$ResultPath"."parsed.txt",resultAnalyse);&ftpUpload($ResultPath);&sendMsg($sock,$cmd1,%argv);#关闭与设备

16、的连接close$t;else#返回结果为falseprint"返回结果为falsen"#关闭与消息服务器的连接close$sock;elsif($Mode_Typeeq"1")#运行输入参数部分,产生输入参数文件print"Displaytheinputargvfile!n"&inputArgvFile();elsif($Mode_Typeeq"2")#运行输出参数部分,产生输出参数文件print"Displaytheoutputargvfile!n"&outputArgvFile();#任务执行结果分析,返回任务分析的结果subresultAnalysen"print"analysetheexecutedcmd'sresultandreturntheanalyseresultmy(result);my$ResultPa

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论