Chinaunix

标题: 如何计算脚本运行所耗时间 [打印本页]

作者: wolfpack.slo    时间: 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似乎得不出时间差,
请问哪位有什么办法可以计算脚本执行所耗时间,
或者说,如何让两个表示时间的变量相减得出两者的时间差?
作者: 寂寞烈火    时间: 2007-09-05 22:48
time cmd
作者: usercool    时间: 2007-09-05 23:40
标题: 回复 #1 wolfpack.slo 的帖子
time [所运行得脚本】
作者: wolfpack.slo    时间: 2007-09-06 12:48
我是要求计算脚本开始和结束之间的时间差,能不能给详细的例子说明,谢谢!
作者: hahasasa    时间: 2007-09-06 16:07
date出来的是包含非数字的字符串,无法做算术运算

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



man date

%s     seconds since '00:00:00 1970-01-01 UTC' (a GNU extension)
作者: jcool    时间: 2008-06-08 09:37
times计算的进程实际耗费cpu的值.

要算整个运行的时间还是用date +%s比较好!
作者: zhangshebao    时间: 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秒
作者: magicsnake    时间: 2008-06-08 13:33
每个脚本都有一个$SECONDS 变量, 一直为脚本执行的时间计时.
作者: 寂寞烈火    时间: 2008-06-08 13:46
原帖由 magicsnake 于 2008-6-8 13:33 发表
每个脚本都有一个$SECONDS 变量, 一直为脚本执行的时间计时.


作者: walkerxk    时间: 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$
作者: xixi_fighting    时间: 2016-08-24 14:57
感谢各位,搜到这里直接用8楼给的$SECONDS解决了问题,也谢谢楼主提问。让我直接用。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2