5
我正在尋找一種記錄和圖形化顯示linux進程的cpu和RAM使用情況的方法。因爲我找不到一個簡單的工具(我試過zabbix和munin但安裝失敗),我開始編寫一個shell腳本來執行此操作用於記錄linux進程的cpu和內存使用情況的shell腳本
腳本文件通過awk解析top命令的輸出並將其記錄到csv中文件。它
- 圖中的處理過程的PID通過ps命令
- 用途頂部和awk登錄CPU和內存使用。
這裏是腳本的樣子
#!/bin/sh
#A script to log the cpu and memory usage of linux processes namely - redis, logstash, elasticsearch and kibana
REDIS_PID=$(ps -ef | grep redis | grep -v grep | awk '{print $2}')
LOGSTASH_PID=$(ps -ef | grep logstash | grep -v grep | awk '{print $2}')
ELASTICSEARCH_PID=$(ps -ef | grep elasticsearch | grep -v grep | awk '{print $2}')
KIBANA_PID=$(ps -ef | grep kibana | grep -v grep | awk '{print $2}')
LOG_FILE=/var/log/user/usage.log
echo $LOG_FILE
top -b | awk -v redis="$REDIS_PID" -v logstash="$LOGSTASH_PID" '/redis|logstash/ {print $1","$9","$10","$12}'
我如何
- 打印多個進程的資源使用情況。在awk模式中指定多個 變量不起作用。它輸出 使用第一PID(在上面的腳本redis的)印刷與資源使用沿着資源的詳細信息(通過日期+「%T」)
- 打印進程名稱時
- 打印當前時間戳。 Redis,Logstash,ElasticSearch或Kibana在上述情況下
- 將上述命令輸出重定向到日誌文件。我試過> $ LOG_FILE,但沒有奏效。
想法/輸入?
在此先感謝。
這是不是一個問題的答案多一個側面說明的。 – 2013-05-07 10:04:08
有幫助,但不是答案:) – 2013-05-07 11:31:00