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