CPU使用率をCSVファイルに保存

CPU使用率をCSVファイルに保存

オペレーティングシステム:Debian 8 x64

5秒ごとにCPUレートを次の形式のCSVファイルに記録したいと思います。

YYYY-MM-DD HH:MM:SS,CPU%

top私はawk / grepを使って((us + sy)/(us + sy + id)* 100)を計算するためにこのプログラムを使用する方法に慣れていません。あなたが助けることができることを願っています。

検索では、人々がtop -bn1とtop -bn2を使用するいくつかの例を見ました。しかし、私のループがtopを呼び出すと、バッチモードをまったく使用する必要はないと思います。

これは私が作成し始めたシェルスクリプトです。

#!/bin/bash

while sleep 5; do "top | grep "Cpu(s)" | awk '{}' >> cpu.csv; done

ベストアンサー1

次の方法でこれを実行できますvmstat

#!/usr/bin/perl

open VMSTAT, "vmstat 5|";
<VMSTAT>; <VMSTAT>; # skip the header
while (<VMSTAT>) {
    @now = split;
    ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime (time);
    printf "%d-%02d-%02d %02d:%02d:%02d,%d%\n", $year+1900, $mon, $mday, $hour, $min, $sec,
        $now[12] + $now[13];
}

ほとんどのコードは日付を印刷するために使用されます。

おすすめ記事