zoukankan      html  css  js  c++  java
  • A python tool to static sim.log duration time

    When working ALU IMS Patch team, we need to static the SU duration to add it to the patch report, the duration time alway is hard work, so I write the follow tool to auto do this work.

     1 #!/usr/bin/python2.6
     2 import re,datetime
     3 file_name='/home/alzhong/logs/qtat1/R2860.01.13/sim-applycommitrollback-bld1.log'
     4 file=open(file_name,'r')
     5 acnum=[];time_res=[];lnum=0
     6 def trans_time(time):
     7     t1=datetime.datetime.strptime(time,'%y/%m/%d %H:%M:%S')
     8     return t1
     9 for (num,line) in enumerate(file):
    10 
    11     if(re.search(r'^(.*)BEGINNING SIM PROCEDURE(.*)$',line)):
    12         m=re.search(r'^(.*)BEGINNING SIM PROCEDURE(.*)$',line)
    13         print 'Step %d:'%(lnum), m.group(0);lnum+=1
    14         acnum.append(trans_time(line[0:17]))
    15     elif(re.search(r'^(.*)CP_W(.*)$', line)):
    16         m=re.search(r'^(.*)CP_W(.*)$', line)
    17         print 'Step %d:'%(lnum), m.group(0);lnum+=1
    18         acnum.append(trans_time(line[0:17]))
    19     elif(re.search(r"^(.*)VERIFY_S(.*)$", line)):
    20         m=re.search(r"^(.*)VERIFY_S(.*)$", line)
    21         print 'Step %d:'%(lnum), m.group(0);lnum+=1
    22         acnum.append(trans_time(line[0:17]))
    23     elif(re.search(r"^(.*)--action commit(.*)$",line)):
    24         m=re.search(r"^(.*)--action commit(.*)$",line)
    25         print 'Step %d:'%(lnum), m.group(0);lnum+=1
    26         acnum.append(trans_time(line[0:17]))
    27     elif(re.search(r"^(.*)COMPLETED SIM PROCEDURE(.*)$",line)):
    28         m=re.search(r"^(.*)COMPLETED SIM PROCEDURE(.*)$",line)
    29         print 'Step %d:'%(lnum), m.group(0);lnum+=1
    30         acnum.append(trans_time(line[0:17]))
    31     elif(re.search(r"^(.*)RESUMING SIM PROCEDURE(.*)$",line)):
    32         m=re.search(r"^(.*)RESUMING SIM PROCEDURE(.*)$",line)
    33         print 'Step %d:'%(lnum), m.group(0);lnum+=1
    34         acnum.append(trans_time(line[0:17]))
    35 
    36 file.close()
    37 if(re.search(r"^(.*)backout(.*)$",file_name)):
    38     time_res.append((acnum[2]-acnum[0]).seconds/60)
    39     time_res.append((acnum[4]-acnum[3]).seconds/60)
    40     time_res.append((acnum[6]-acnum[5]).seconds/60)
    41     time_res.append(((acnum[8]-acnum[7])+(acnum[10]-acnum[9])+(acnum[13]-acnum[11])).seconds/60)
    42     print "
    3). sim --proc update --action apply to "CP_WARNING" %s mins" %(time_res[0])
    43     print "4). sim --proc update --action resume to  "VERIFY_SOFTWARE" %s mins"%(time_res[1])
    44     print "5). sim --proc update --action resume to  "COMMIT" %s mins"%(time_res[2])
    45     print "8). Backout from RXX to RXX  %s mins"%(time_res[3])
    46 elif(re.search(r"^(.*)rollback(.*)$",file_name)):
    47     time_res.append((acnum[2]-acnum[0]).seconds/60)
    48     time_res.append((acnum[4]-acnum[3]).seconds/60)
    49     time_res.append((acnum[6]-acnum[5]).seconds/60)
    50     time_res.append((acnum[8]-acnum[7]).seconds/60)
    51     time_res.append(((acnum[10]-acnum[9])+(acnum[12]-acnum[11])+(acnum[15]-acnum[13])).seconds/60)
    52     print "
    3). sim --proc update --action apply to "CP_WARNING" %s mins" %(time_res[0])
    53     print "4). sim --proc update --action resume to  "VERIFY_SOFTWARE" %s mins"%(time_res[1])
    54     print "5). sim --proc update --action resume to  "COMMIT" %s mins"%(time_res[2])
    55     print "6). sim --proc update --action commit to end of Patch %s mins"%(time_res[3])
    56     print "8). Rollback from RXX to RXX %s mins" %(time_res[4])
    57 if __name__ == '__main__':
    58     pass
    

    The output of the script as follows:

    <lsslogin1-alzhong>/home/alzhong/tools: ls
    simt
    <lsslogin1-alzhong>/home/alzhong/tools: ./simt
    Step 0: 14/06/16 12:31:32 BEGINNING SIM PROCEDURE 'update apply' type=hot ...
    Step 1: 14/06/16 13:18:42 RESUMING SIM PROCEDURE 'update apply' type=hot ...
    Step 2: 14/06/16 13:30:43 SIM0317 PAUSE_REQUEST: (PROCEDURE) [PAUSE(CP_WARNING): Use 'sim --proc update --action resume' to continue...] (update:1435)
    Step 3: 14/06/16 13:43:40 RESUMING SIM PROCEDURE 'update apply' type=hot ...
    Step 4: 14/06/16 13:47:49 SIM0343 PAUSE_REQUEST: (PROCEDURE) [PAUSE(VERIFY_SOFTWARE): Use 'sim --proc update --action resume' to continue...] (update:1634)
    Step 5: 14/06/16 13:54:26 RESUMING SIM PROCEDURE 'update apply' type=hot ...
    Step 6: 14/06/16 14:25:41 SIM0496 PAUSE_REQUEST: (COMMIT) [PAUSE(COMMIT): Use 'sim --proc update --action commit' to continue...] (update:2579)
    Step 7: 14/06/16 14:41:51 RESUMING SIM PROCEDURE 'update commit' type=hot ...
    Step 8: 14/06/16 15:18:34 COMPLETED SIM PROCEDURE 'update commit' type=hot
    Step 9: 14/06/16 15:31:35 BEGINNING SIM PROCEDURE 'update rollback' type=hot level=9999 ...
    Step 10: 14/06/16 15:47:34 SIM0091 PAUSE_REQUEST: (PROCEDURE) [PAUSE(CP_WARNING): Use 'sim --proc update --action resume' to continue...] (update_rlbk:421)
    Step 11: 14/06/16 15:53:30 RESUMING SIM PROCEDURE 'update rollback' type=hot level=9999 ...
    Step 12: 14/06/16 16:02:03 SIM0135 PAUSE_REQUEST: (PROCEDURE) [PAUSE(VERIFY_SOFTWARE): Use 'sim --proc update --action resume' to continue...] (update_rlbk:564)
    Step 13: 14/06/16 16:04:22 RESUMING SIM PROCEDURE 'update rollback' type=hot level=9999 ...
    Step 14: 14/06/16 16:09:42 RESUMING SIM PROCEDURE 'update rollback' type=hot level=9999 ...
    Step 15: 14/06/16 16:26:56 COMPLETED SIM PROCEDURE 'update rollback' type=hot level=9999
    
    3). sim --proc update --action apply to "CP_WARNING" 59 mins
    4). sim --proc update --action resume to  "VERIFY_SOFTWARE" 4 mins
    5). sim --proc update --action resume to  "COMMIT" 31 mins
    6). sim --proc update --action commit to end of Patch 36 mins
    8). Rollback from RXX to RXX 47 mins
  • 相关阅读:
    java锁类型
    Java线程池
    1 Navicat12 过期了怎么办
    N1-二维数组查找
    SQL-59 按照salary的累计和running_total,其中running_total为前两个员工的salary累计和,其他以此类推。
    SQL-58 获取有奖金的员工相关信息。
    SQL-57 使用含有关键字exists查找未分配具体部门的员工的所有信息。
    SQL-56 获取所有员工的emp_no、部门编号dept_no以及对应的bonus类型btype和recevied,没有分配具体的员工不显示
    SQL-55 分页查询employees表,每5行一页,返回第2页的数据
    SQL-54 查找排除当前最大、最小salary之后的员工的平均工资avg_salary。
  • 原文地址:https://www.cnblogs.com/allenz/p/4755974.html
Copyright © 2011-2022 走看看