CentOS7 スクリプトで合計値を出力

IT

arakenです。

今回はuser使用率とsystem使用率の平均値の合計を出力するスクリプトを作成したいと思います、

ここでまず便利なのがsarコマンド

まずはsarコマンドを使ってuser使用率とsystem使用率がどのくらいなのか調べてみます。

でてきましたね。私が知りたいのはAveregeのuserとsystemですので共に0.25がわかります。
更にもっと詳しいAveregeが知りたいので10回ほど試してみます。

試行回数を増やすことによって平均値がわかります。
これをスクリプトによってuserとsystemの平均値の合計を導き出したいと思います。

まずは適当にhomeでも良いのでファイルを作成。
私は/root配下にcpu-system.shなんかで作成しました。
ファイル名は正直何でも良いです。

恐らく、ファイル作成だけで問題ないかもしれませんが、パーミッションもついでに変えておきます。

chmod 755 cpu-system.sh

ここから、スクリプトの記述をして行きます。
肝心なのは意味やオプションを理解することです。

#!/bin/bash
system=`sar 1 10 | tail -1 | gawk '{print $5}'`
user=`sar 1 10 | tail -1 | gawk '{print $3}'`
echo $system + $user | bc | sed 's/^\./0./'

変数systemと変数userの記述をし、1回の命令を10回分、下から1行でgawkで何番目なのかを指定。
変数userも同じ記述で場所は違うのでgawkで場所を指定してます。
最後にechoでsystem+userの平均値の合計を出力なのですが、今回は少数が入りますのでbcコマンドかつsedコマンドで正規表現の頭が「ピリオド」だった場合「0.」に置き換えるように記述しております。

では実際にスクリプト実行をしてみましょう。

はい、問題なくuserとsystemの平均値の合計が出力されました。
仕組みがわかると凄い楽しいです。

また、いろんなスクリプト作成したら確認も込めて投稿しようと思います。

コメント

  1. xaway より:

    Nice to meet you.

    ++ が準備したスクリプトですかね。

    sar って最後に平均値出すんですね 注意してみたことなかった。。。 ためになりやす。

    • araken araken より:

      はじめまして、xawayさん

      コメント、ありがとうございます!

      はい。++が準備したスクリプトですね。
      このスクリプトは実際現場での覚えた財産みたいなもので、このときから既に1年たっており、かなり忘れております。

      スクリプトはパズルのようで仕事が面白かったですが、短期案件だったのがなかなか辛かったです。

      sarは平均値を出力ですね。また、構築の現場に行きたいです。。