本发明涉及的是一种对nas(networkattachedstorage)命令执行时间进行自动化统计,获得平均时间、最长时间及最短时间的方法及系统。
背景技术:
在现有技术中,公知的技术是as18000g2存储产品在统一存储的基础上,增加nas功能,实现平台模块的功能增加与优化,既补充了公司存储产品线,又丰富了公司产品方案组合的多样化。其中nas集群命令执行时长是nas测试中的一个重要组成部分,项目初期nas命令执行时长普遍偏长,后期对其进行了优化,每个版本需要测试nas相关命令的时长,以便同之前进行对比。在nas命令时长测试中,每个命令需要执行10次,并且获取执行时长的平均值、最大值以及最小值,其中nas有数十种命令,如果均手动执行,耗费较多时间和精力,不利于测试的快速进行,所以需一种可以自动化进行nas命令执行时长的测试方法。,这是现有技术所存在的不足之处。
技术实现要素:
本发明的目的就是针对现有技术所存在的不足,而提供一种一种利用脚本进行nas命令执行时间统计的方法及系统,该方案通过编写脚本,自动进行nas命令时长的统计测试节约测试时间,方便测试的进行。
本方案是通过如下技术措施来实现的:一种利用脚本进行nas命令执行时间统计的方法,包括如下步骤:1)执行脚本,并创建用于保存执行时间的临时文件;需要运行脚本时,执行./test.sh参数1。2)统计每次nas命令执行时间,并保存到临时文件中;3)计算每次nas命令执行时间中的最大执行时间、最小执行时间、平均计算时间,并保存到临时文件中。这样当需要进行时间统计时,运行脚本即可,这样就可以在整个nas命令执行过程中进行统计,不需要人工逐个统计。
步骤1)中的临时文件包括用于存放平均值、最大最小值的临时日志文件,用于存放所有执行结果的临时文件,存放所有时间的临时文件。
用于存放平均值、最大最小值的临时文件为log_"$1";用于存放所有执行结果的临时文件为log;用于存放所有时间的临时文件为log_alltime_"$1"。这样在执行脚本之初,就创建这些文件,便于统计过程中及时存储时间信息。
在步骤3)中,保存到临时文件中后,将临时文件中的log_"$1"和log_alltime_"$1"存储到指定文件夹。将临时文件存储到指定文件后,将原临时文件全部删除。这样不会占用额外的存储空间。
用于上述统计方法的系统,包括采集监控模块,统计模块、存储模块、输出模块;采集监控模块用于启动脚本运行,采集每个nas命令的执行时长;统计模块用于统计所有nas命令执行的时长,并提取出最大时长和最小时长,计算出平均时长;存储模块用于创建存放平均值、最大最小值、所有执行结果的临时文件,在存放平均值、最大最小值的临时日志文件和存放所有时间的临时文件被输出到指定文件夹后,删除所有临时文件;输出模块用于输出存放平均值、最大最小值至指定文件夹。采集监控模块启动监控,并采集每次命令执行的时间并将信息发送到存储模块进行存储,统计模块统计最长时长、最短时长及平均时长存储到存储模块,存储模块将这些临时文件或临时日志文件存储到指定文件夹后,将原来的所有临时文件和临时日志文件删除。
所述存储模块中存放平均值、最大最小值的临时日志文件为log_"$1"日志文件,存放所有时间的临时文件为log_alltime_"$1"临时文件。
由此可见,本发明与现有技术相比,具有突出的实质性特点和显著的进步,其实施的有益效果也是显而易见的。
具体实施方式:
为能清楚说明本方案的技术特点,下面通过一个具体实施方式,对本方案进行阐述。
本方案的利用脚本进行nas命令执行时间统计的方法,其特征在于包括如下步骤:1)执行脚本,并创建用于保存执行时间的临时文件;用于存放平均值、最大最小值的临时文件为log_"$1";用于存放所有执行结果的临时文件为log;用于存放所有时间的临时文件为log_alltime_"$1"。2)统计每次nas命令执行时间,并保存到临时文件中;临时文件包括用于存放平均值、最大最小值的临时日志文件,用于存放所有执行结果的临时文件,存放所有时间的临时文件。3)计算每次nas命令执行时间中的最大执行时间、最小执行时间、平均计算时间,并保存到临时文件中。在步骤3)中,保存到临时文件中后,将临时文件中的log_"$1"和log_alltime_"$1"存储到指定文件夹。
需要运行脚本时,执行./test.sh参数1。#创建存放平均值、最大最小值的日子文件
touchlog_"$1"
#创建存放所有执行结果的临时文件
touchlog
#创建存放所有时间的文件
touchlog_alltime_"$1"
#以下循环用来统计命令执行时间,并将其保存在log_alltime_"$1"
foriin{1..20}
do
time($1)>>log2>&1
sleep1
catlog|tail-n3|head-n1|cut-b8-15>>log_alltime_"$1"
sleep1
done
#计算平均执行时间并保存在log_"$1"
catlog_alltime_"$1"|awk'{sum+=$1}end{print"avg=",sum/nr}'>>log_"$1"
#计算最大执行时间时间并保存在log_"$1"
awk'begin{max=0}{if($1+0>max+0)max=$1}end{print"max=",max}'log_alltime_"$1">>log_"$1"
#计算最小执行时间时间并保存在log_"$1"
awk'begin{min=65536}{if($1+0<min+0)min=$1}end{print"min=",min}'log_alltime_"$1">>log_"$1"
#将log_"$1"log_alltime_"$1"两个日志保存放入希望的文件夹保存
cplog_"$1"/home/root/time_count
cplog_alltime_"$1"/home/root/time_count
#删除临时文件夹log
rm–rflog
echo"success"
用于上述方法的系统,包括采集监控模块,统计模块、存储模块、输出模块;采集监控模块用于启动脚本运行,采集每个nas命令的执行时长;统计模块用于统计所有nas命令执行的时长,并提取出最大时长和最小时长,计算出平均时长;存储模块用于创建存放平均值、最大最小值、所有执行结果的临时文件,在存放平均值、最大最小值的临时日志文件和存放所有时间的临时文件被输出到指定文件夹后,删除所有临时文件;输出模块用于输出存放平均值、最大最小值至指定文件夹。
本发明并不仅限于上述具体实施方式,本领域普通技术人员在本发明的实质范围内做出的变化、改型、添加或替换,也应属于本发明的保护范围。