Tag: php
timeコマンドの結果のまとめをCSV形式に変換
定期的に実行したdateとtimeコマンドの結果を time.logに追加して置いて、そのtime.logを扱いやすいように、日付、real,user,sysのcsv形式に変換する。
(date;time 時間を計測したいコマンド) > time.log 2>&1
の様にして保存した場合を想定。
<?php
$FP = fopen("time.log", "r");
/*
2015年 12月 17日 木曜日 10:32:03 JST
real 0m0.499s
user 0m0.000s
sys 0m0.000s
*/
$CSV = fopen("test2.csv","w");
/*
2019-6-28 02:20:01,0.273
2019-6-28 03:20:01,0.308
2019-6-28 04:20:01,0.261
2019-6-28 05:20:01,0.272
2019-6-28 06:20:01,0.3
2019-6-28 07:20:01,0.698
2019-6-28 08:20:01,0.261
2019-6-28 09:20:01,0.28
2019-6-28 10:20:01,0.283
2019-6-28 11:20:01,0.311
*/
$dateStr = "";
$secondStr = "";
while($b=fgets($FP, 1024)) {
if (preg_match('/^(20\d\d)年\D+(\d+)月\D+(\d+)日\D+(\d+:\d+:\d+)\D+$/ms', $b, $mt)) {
$dateStr = "$mt[1]-$mt[2]-$mt[3] $mt[4]";
}
if (preg_match('/^real\D+(\d+)m([\d\.]+)s$/ms', $b, $mt)) {
$s = $mt[1] * 60 + $mt[2] * 1;
$secondStr = "$s";
}
if ($dateStr != "" && $secondStr != "") {
fputs($CSV, $dateStr.",".$secondStr."\n");
$dateStr = "";
$secondStr = "";
}
}
fclose($FP);
fclose($CSV);
?>