nodeとredisのプロセスの状態をログに吐くワンライナー
・node/redisとも複数プロセスが動作するが考慮していない
・実行に1秒前後はかかる(topが重いが/proc/pid見るのが面倒だった)
while true; do date +%H:%M:%S | awk '{printf $1", "}' >> log.txt \ && top n 1 b | grep node | awk '{printf $9", "$10", "}' >> log.txt \ && top n 1 b | grep redis | awk '{printf $9", "$10", "}' >> log.txt \ && redis-cli 'dbsize' | awk '{printf $1", "}' >> log.txt \ && free | grep Mem | awk '{printf $2", "$3", "$4"\n"}' >> log.txt ; done;
ログはこんなの。
時分秒, node CPU%, node RAM%, redis CPU%, redis RAM% dbsize, RAM total, used, free
# cat log.txt 16:09:52, 0.0, 5.2, 0.0, 18.1, 10050, 1020120, 664244, 355876 16:09:53, 0.0, 5.2, 0.0, 18.1, 10050, 1020120, 664244, 355876 16:09:54, 0.0, 5.2, 0.0, 18.1, 10050, 1020120, 664244, 355876