Bonjour,
J'ai un script ksh sous Solaris 10 qui utilise nawk pour traiter deux fichiers afin d'en créer un troisième.
Le script créer des processus en <defunct> et met enormement de temps à se terminer alors que les deux fichiers traités ne font que 24Mo et 3,5Mo.
J'aimerai bien modifier mon script pour corriger le bug qui créer ces processus en <defunct> et ralenti le traitement mais je ne vois pas ce qui ne marche pas.
Le script est plus long avec d'autre awk qui crée aussi des defunct mais je l'ai tronqué car si je corrige le bug ici, je pourrai le corriger le reste du script.
Merci.
Voici les 10 première ligne des deux fichiers traités :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 head -10 fic_tmp2_22936 group ss created client retent ssid total nfiles pool lvl fl name browse SVI_Incr_SystAppli_Quot_ma 12/30/09 03:36:43 ivr5_oem 01/06/10 372948155 8341212 157 SFRIncrAllQuot1 incr cE /cdr 01/06/10 SVI_Incr_SystAppli_Quot_ma 12/30/09 03:36:45 scp1_oem 01/06/10 339393725 4654248 24 SFRIncrAllQuot1 incr cE /logs 01/06/10 SVI_Incr_SystAppli_Quot_ma 12/30/09 03:36:45 pfs4_oem 01/06/10 322616509 268812 20 SFRIncrAllQuot1 incr cE /logs 01/06/10 SVI_Incr_SystAppli_Quot_ma 12/30/09 03:36:47 om1_oem 01/06/10 289062079 193478524 25 SFRIncrAllQuot1 incr cE /logs 01/06/10 SVI_Incr_SystAppli_Quot_ma 12/30/09 03:36:44 scp1_oem 01/06/10 356170940 35555512 210 SFRIncrAllQuot1 incr cE /cdr 01/06/10 SFBOX_Incr_ConfSystAppli_Quot_Sa 12/30/09 04:16:00 xsavec1 01/06/10 2621097456 4 0 SFRIncrAllQuot1 incr cE /btsave/ty_data 12/31/09 SFBOX_Incr_ConfSystAppli_Quot_Sa 12/30/09 04:16:02 xsavec1 01/06/10 2587543026 4 0 SFRIncrAllQuot1 incr cE /btsave/ty_exec 12/31/09 NOC_OVIS_Incr_SysAppli_Quot_ma 12/30/09 04:16:09 ch3svcip03 01/06/10 2570765817 4183636 4 SFRIncrAllQuot1 full ca SYSTEM STATE:\ 01/06/10 MET_Incr_ConfSystAppli_quot_ma 12/30/09 04:17:32 sts1 01/06/10 1597687372 8041411968 111 SFRIncrAllQuot1 incr cE /u01 12/31/09
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 head -10 fic_tmp5_22936 yes;bdd2;inconnu;;CTC_Full_ConfSystAppli_Hebdo;02/04/10 05:00:01;02/04/10 05:00:13;OK;skip;4;;0;/u00/app/oracle/admin !/u00/app/oracle !/ !/u90/oracle/backup;/nsr/logs/groups/CTC_Full_ConfSystAppli_Hebdo/CTC_Full_ConfSystAppli_Hebdo_Success_20100204-050015.log yes;bdd3;inconnu;;CTC_Full_ConfSystAppli_Hebdo;02/04/10 05:00:01;02/04/10 05:00:13;OK;skip;3;;0;/u00/app/oracle/admin !/u00/app/oracle !/;/nsr/logs/groups/CTC_Full_ConfSystAppli_Hebdo/CTC_Full_ConfSystAppli_Hebdo_Success_20100204-050015.log yes;ctc1;inconnu;;CTC_Full_ConfSystAppli_Hebdo;02/04/10 05:00:01;02/04/10 05:00:13;OK;skip;3;;0;/ !/apps/apache/current/logs !/apps/data/logs;/nsr/logs/groups/CTC_Full_ConfSystAppli_Hebdo/CTC_Full_ConfSystAppli_Hebdo_Success_20100204-050015.log yes;ctc2;inconnu;;CTC_Full_ConfSystAppli_Hebdo;02/04/10 05:00:01;02/04/10 05:00:13;OK;skip;3;;0;/ !/apps/apache/current/logs !apps/data/logs;/nsr/logs/groups/CTC_Full_ConfSystAppli_Hebdo/CTC_Full_ConfSystAppli_Hebdo_Success_20100204-050015.log yes;ctc3;inconnu;;CTC_Full_ConfSystAppli_Hebdo;02/04/10 05:00:01;02/04/10 05:00:13;OK;skip;3;;0;/ !/apps/apache/current/logs !/apps/data/logs;/nsr/logs/groups/CTC_Full_ConfSystAppli_Hebdo/CTC_Full_ConfSystAppli_Hebdo_Success_20100204-050015.log yes;fr-ctc-bdd1;inconnu;;CTC_Full_ConfSystAppli_Hebdo;02/04/10 05:00:01;02/04/10 05:00:13;OK;skip;1;;0;All;/nsr/logs/groups/CTC_Full_ConfSystAppli_Hebdo/CTC_Full_ConfSystAppli_Hebdo_Success_20100204-050015.log yes;fr-ctc-bdd2;inconnu;;CTC_Full_ConfSystAppli_Hebdo;02/04/10 05:00:01;02/04/10 05:00:13;OK;skip;1;;0;All;/nsr/logs/groups/CTC_Full_ConfSystAppli_Hebdo/CTC_Full_ConfSystAppli_Hebdo_Success_20100204-050015.log yes;fr-ctc-bdd3;inconnu;;CTC_Full_ConfSystAppli_Hebdo;02/04/10 05:00:01;02/04/10 05:00:13;OK;skip;1;;0;All;/nsr/logs/groups/CTC_Full_ConfSystAppli_Hebdo/CTC_Full_ConfSystAppli_Hebdo_Success_20100204-050015.log yes;jumpstart;inconnu;;CTC_Full_ConfSystAppli_Hebdo;02/04/10 05:00:01;02/04/10 05:00:13;OK;skip;1;;0;/apps/infra;/nsr/logs/groups/CTC_Full_ConfSystAppli_Hebdo/CTC_Full_ConfSystAppli_Hebdo_Success_20100204-050015.log yes;bdd1;inconnu;;CTC_Full_ConfSystAppli_Hebdo;02/04/10 05:00:01;02/04/10 05:00:13;OK;skip;3;;0;/u00/app/oracle/admin !/u00/app/oracle !/;/nsr/logs/groups/CTC_Full_ConfSystAppli_Hebdo/CTC_Full_ConfSystAppli_Hebdo_Success_20100204-050015.log
Et voila le script :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98 #!/usr/bin/ksh set -x TMPreport3=fic_tmp5_22936 MMINFORES=fic_tmp2_22936 # ==> Lecture de MMINFORES pour recuperer des infos #Passage de la variable existonly #TMPreport3 : group date heure client rentention ssid taille nbfile pool level sumflags saveset browse policy cat $TMPreport3 | nawk -v existonly=$EXISTONLY ' BEGIN { #$1 $2 $3 ... issue du fichier $MMINFORES #Creation de plusieurs tableau avec pour cle le ssid (source MMINFORES) while ("cat '$MMINFORES'" | getline) { dsave[$6]="20"substr($2,7,2)substr($2,1,2)substr($2,4,2)substr($3,1,2)substr($3,4,2)substr($3,7,2) dretent[$6]=substr($5,7,2)substr($5,1,2)substr($5,4,2) group[$6]=$1 client[$6]=$4 level[$6]=$10 nbfiles[$6]=$8 taille[$6]=$7 pool[$6]=$9 isEll[$6]=match($11,"E") ss[$6]=$12 } FS=";" } { #Traitement des sauvegarde a no #$1 $2.. correspond au champ du fichier TMPreport3 if ( $1 == "no" ) { if ( existeSVG[$2":"$3":"$4] != "yes" ) { existeSVG[$2":"$3":"$4]="no" } } else { #Traitement des sauvegarde a yes ddebut="20"substr($6,7,2)substr($6,1,2)substr($6,4,2)substr($6,10,2)substr($6,13,2)substr($6,16,2) dfin="20"substr($7,7,2)substr($7,1,2)substr($7,4,2)substr($7,10,2)substr($7,13,2)substr($7,16,2) STATUS=$8 if ($6 == ""){ DEBUT_SAUVEGARDE="" } else{ DEBUT_SAUVEGARDE=substr($6,4,2)"/"substr($6,1,2)"/"substr($6,7,2)" "substr($6,10,5) } if($7 == ""){ FIN_SAUVEGARDE="" } else{ FIN_SAUVEGARDE=substr($7,4,2)"/"substr($7,1,2)"/"substr($7,7,2)" "substr($7,10,5) } RETENTION=0 NBSAVESETS=0 LEVEL="" NBFILES=0 TAILLE=0 sase="" for (i in dsave) { if ( client[i] == $2 && group[i] == $5 && ddebut <= dsave[i] && dsave[i] <= dfin) { NBSAVESETS+=1 if ( dretent[i] > RETENTION) RETENTION=dretent[i] if ( LEVEL != "full" ) LEVEL=level[i] NBFILES+=nbfiles[i] TAILLE+=taille[i] if (isEll[i] !=0) {recyc="E"} else {recyc=""} if ( sase != "" ) { sase=sase" !"ss[i] } else { sase=ss[i] } } } if ( RETENTION != 0 ) { RETENTION=substr(RETENTION,5,2)"/"substr(RETENTION,3,2)"/"substr(RETENTION,1,2) print $2";"$3";"$4";"$5";"$8";"DEBUT_SAUVEGARDE";"FIN_SAUVEGARDE";"int(TAILLE/1048576)";"RETENTION";"NBFILES";"NBSAV ESETS";"LEVEL";"recyc";"sase";"$14 existeSVG[$2":"$3":"$4]="yes" } else { print $2";"$3";"$4";"$5";"$8";"DEBUT_SAUVEGARDE";"FIN_SAUVEGARDE";"$11";"";"$12";"$10";"$9";E;"$13";"$14 if ( existeSVG[$2":"$3":"$4] != "yes") { existeSVG[$2":"$3":"$4]="no" } } } } END { if ( existonly == "no") { for (i in existeSVG) { if ( existeSVG[i] != "yes" ) { split(i,memb,":") print memb[1]";"memb[2]";"memb[3]";Nogroup;Disabled;;;;;;;;;" } } } }' | sort -t";" -k 2,2 > sortie
Partager