LoginSignup
0
2

More than 5 years have passed since last update.

特定の値を区切って出力する

Posted at

業務中に思いついたツールを作成したので、
記事に残しておきます。値は例として物理メモリの使用量を
取得していますが、なんでも入れることができます。

memory.sh
#!/bin/bash
#物理メモリの使用量を出力するツール

#各種変数の設定
OUTPUT_DIR="/home/ToolAdmin/memory"
FILENAME="Memory.log"

#日付レコード関数の設定
writinglog() {
echo "[`date +%Y/%m/%d\ %H:%M:%S`]" $1
}

#メモリデータの出力
writinglog `free | grep Mem | awk '{print $3}'` >> $OUTPUT_DIR/$FILENAME

出力結果は以下の通りです。

MemoryResult.log
[2017/12/26 21:50:37] 467832

writinglog関数の部分は、
処理ログっぽくしたくてこうしましたが、
のちのちデータ可視化のために表形式にすることも考慮するならば、
[]は不要だと思うので、以下の構文もいいのかなと思いました。

writinglog関数別案.sh
#日付レコード関数の設定
writinglog() {
echo `date +%Y/%m/%d\ %H:%M:%S` $1
}

上記の通りであれば、EXCELなどの表計算ソフトに、
日付・時刻・取得したい値の3列に成形することも簡単になります。
また$1の横に$2...と比較したい値をつけ足していくこともできるので、
わりかし色々と応用して使えれそうです。

あとはcronに5分毎に出力設定にするとよいと思います。

5分毎.log
[2017/12/26 21:50:37] 467832
[2017/12/26 21:55:01] 466260
[2017/12/26 22:00:01] 470524
[2017/12/26 22:05:01] 467840

おやすみなさい。

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2