2011-09-13 12 views
1

私のホストは私のWebサイトに限られたRAMを提供しています。私はcronでスクリプトを実行してメモリ消費量を監視したいと考えています。ユーザーのメモリ消費量を取得するスクリプトまたはコマンド

私は、このコマンドを作っています

ps -u xxxxxx -o rss,command | grep -v peruser | awk '{sum+=$1} END {print sum/1024}' 

しかし、私のホストはメモリが特殊性を持って計算される方法。 5分未満で実行されるプロセスは無視されます。

短命のプロセスを無視して合計使用メモリを表示できるコマンドまたはPythonスクリプトがありますか?

答えて

1

etimeを使用してプロセスの経過時間を確認します。 awkコマンドを変更して、この時間が5分を超えるかどうかを確認できます。

ps -u xxxxxx -o rss,etime,command | ... 

経過時間の形式は[[dd-]hh:]mm:ssです。これは、時間が00:30、12:57:39、さらには4-08:27:12になる可能性があることを意味します。 awkを使用すると、この時間形式を解析して秒単位に変換できます。秒に1回、5分以上かどうかを確認し、そうであればrssの実行中の合計に追加します。コマンド:(あなたは私のawkコマンドを変更して、5分のETIMEを持つプロセスをフィルタリングする方法を教えたりしてくださいすることができます私は本当にUNIXで吸う

ps -u xxxxxx -o rss,etime,command | grep -v peruser | grep -v RSS | sed 's/^ *//g' | awk '{ 
split($2,arr,":") #split time on : 
len=0 
for(i in arr) len++ 
secs=arr[len]+60*arr[len-1] #convert to seconds 
if(len>2) secs=secs+substr(arr[len-2],length(arr[len-2])-1)*60*60 

if(secs>5*60) { #check if more than 5 minutes 
    print $0 #print out the process 
    sum+=$1 
} 
} END{print "SUM:"sum/1024}' 
+0

:ここ

はこれを行うサンプルスクリプトです私はあなたの答えを通知しませんでした。すぐにあなたにスクリプトをテストし、明日の結果を投稿します。ありがとうございました!ありがとう! – Vallieres

+0

私は私の答えを更新しました – dogbane

+0

ダムニット、 – Vallieres

関連する問題