Help us understand the problem. What is going on with this article?

vmstatをdaemon化して継続的なログを記録する

More than 1 year has passed since last update.

サーバーのリソース状態を記録しておくための方法。

shファイルを作成

仕様:60秒ごとにログを取得。結果を日時とともにファイル(/tmp/vmstat.log)に書き込む。

/tmp/resource_log.sh
#!/bin/bash
exec /usr/bin/vmstat 60 | awk '{print strftime("%y/%m/%d %H:%M:%S"), $0} {fflush() }' >> /tmp/vmstat.log

shファイルは/tmpディレクトリに置いてありますが、どこでもよいです。

サービスファイル作成

実行用のサービスファイルを作ります。(/etc/systemd/system/配下)
ExecStartのところで、先ほど作ったshファイルを指定します。

/etc/systemd/system/resource_log.service
[Unit]
Description=VMSTAT as a Service

[Service]
Restart=on-failure
RestartSec=10
ExecStart=/tmp/rec_resource.sh

[Install]
WantedBy=basic.target

起動

以下のコマンドを実行。(systemctlに変更を通知 → 実行)

$ sudo systemctl daemon-reload
$ sudo systemctl start resource_log.service

確認

$ cat /tmp/vmstat.log

18/09/19 16:35:22 procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
18/09/19 16:35:22  r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
......

こんな感じで記録されていればOK。

tomipetit
LINKA ASSOCIATES INC. Web Developper,Engineer. Toyohashi Aichi.
https://tomipetit.me
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away