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}'
:ここ
はこれを行うサンプルスクリプトです私はあなたの答えを通知しませんでした。すぐにあなたにスクリプトをテストし、明日の結果を投稿します。ありがとうございました!ありがとう! – Vallieres
私は私の答えを更新しました – dogbane
ダムニット、 – Vallieres