
私は50個のプロセスを起動し、1つのファイル「say start_time」にはプロセスが開始された時間を保存し、もう1つのファイル「say end_time」にはプロセスが完了した時間を保存します。ファイルは次のとおりです。
Start time -
Start time for Process A : 15/09/26 21:02:13
Start time for Process B : 15/09/26 20:06:14
Start time for Process C : 15/09/26 13:20:52
Start time for Process D : 15/09/26 11:23:46
End time file
End time for Process B : 15/09/26 21:13:38
End time for Process D : 15/09/26 12:31:29
End time for Process A : 15/09/26 22:06:11
End time for Process C : 15/09/26 12:17:10
では、各プロセスの実行時間を計算したいと思います。たとえば、プロセスA:10分プロセスB:5分など。
答え1
私は同意するカス'上記の説明は、次のように将来の形式を再指定しないように正しいログファイルの日付を示しています。
awk '
/:/{
d=$(NF-1)
gsub("/","",d)
"date +%s -d \""d" "$NF"\"" | getline m
if(/Start/)
D[$5]=-m
else
D[$5]+=m
END{
for(i in D)
print "Process", i, "time :", D[i], "sec"
}' file
プロセスの終了順序を保存するには、スクリプトの末尾を次のように変更します。
… D[$5]=-m
else
print "Process", $5, "time :", D[$5] + m
}' file