免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 13683 | 回复: 10
打印 上一主题 下一主题

如何计算脚本运行所耗时间 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-09-05 21:34 |只看该作者 |倒序浏览
我写一段备份工作组文档目录简单脚本:

  1. !/bin/bash

  2. echo "***********************************************************************************" >> /var/log/backup/backup-job.log

  3. echo "`date`  FA7000 backup job is beginning......." >> /var/log/backup/backup-job.log

  4. echo "" >> /var/log/backup/backup-job.log
  5. echo "" >> /var/log/backup/backup-job.log


  6. echo "***********************************************************************************" >> /var/log/backup/backup-detail.log

  7. echo "`date`" >> /var/log/backup/backup-detail.log


  8. tar czvf /export/FA7000.tar.gz  /home/FA7000  >> /var/log/backup/backup-detail.log

  9. mv "/export/FA7000.tar.gz"  "/export/FA7000.`date +%Y%m%d%k%M%S`.tar.gz"  

  10. echo "`date`  FA7000 backup job is successful!!!" >> /var/log/backup/backup-job.log
复制代码


我想统计每天备份脚本执行所耗时间,我用如下
在脚本开头加入

  1. date> begin_time
复制代码

在脚本结尾加入

  1. date> end_time
复制代码


然后试图用end_time - begin_time得出所耗时间,


  1. echo $begin_time
  2. echo $end_time
复制代码

能正确显示脚本开始时间和技术时间,但是用end_time - begin_time似乎得不出时间差,
请问哪位有什么办法可以计算脚本执行所耗时间,
或者说,如何让两个表示时间的变量相减得出两者的时间差?

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
2 [报告]
发表于 2007-09-05 22:48 |只看该作者
time cmd

论坛徽章:
0
3 [报告]
发表于 2007-09-05 23:40 |只看该作者

回复 #1 wolfpack.slo 的帖子

time [所运行得脚本】

论坛徽章:
0
4 [报告]
发表于 2007-09-06 12:48 |只看该作者
我是要求计算脚本开始和结束之间的时间差,能不能给详细的例子说明,谢谢!

论坛徽章:
0
5 [报告]
发表于 2007-09-06 16:07 |只看该作者
date出来的是包含非数字的字符串,无法做算术运算

改用 date +%s 应该可以满足你的需求



man date

%s     seconds since '00:00:00 1970-01-01 UTC' (a GNU extension)

论坛徽章:
0
6 [报告]
发表于 2008-06-08 09:37 |只看该作者
times计算的进程实际耗费cpu的值.

要算整个运行的时间还是用date +%s比较好!

论坛徽章:
0
7 [报告]
发表于 2008-06-08 12:34 |只看该作者
begin_time="`gawk 'BEGIN{print systime()}'`"
#备份
gawk 'BEGIN{
   print "备份从" strftime("%Y年%m月%d日%H:%M:%S",0'$begin_time'),"开始 ,",
             strftime("到%Y年%m月%d日%H:%M:%S",systime()) ,"结束,",
             " 共历时" systime()-0'$begin_time' "秒";
}'
备份从2008年06月08日12:29:36 开始 , 到2008年06月08日12:32:42 结束,  共历时186秒

论坛徽章:
0
8 [报告]
发表于 2008-06-08 13:33 |只看该作者
每个脚本都有一个$SECONDS 变量, 一直为脚本执行的时间计时.

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
9 [报告]
发表于 2008-06-08 13:46 |只看该作者
原帖由 magicsnake 于 2008-6-8 13:33 发表
每个脚本都有一个$SECONDS 变量, 一直为脚本执行的时间计时.

论坛徽章:
0
10 [报告]
发表于 2008-06-08 18:16 |只看该作者
原帖由 jcool 于 2008-6-8 09:37 发表
times计算的进程实际耗费cpu的值.

要算整个运行的时间还是用date +%s比较好!

不是,time有三个值的,
bash-3.2$ time sleep 5

real    0m5.849s
user    0m0.077s
sys     0m0.249s
bash-3.2$
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP